Windows 95多線程間同步事件的控制方法

來源:互聯網
上載者:User

摘要:在Windows 95中所有的應用程式實際上都以是線程的方式啟動並執行。在設計多線程應用程式中有時必須線上程之間保持一定的同步關係,才能使使用者能夠對獨立啟動並執行線程進行有效控制。為此本文在簡要介紹Windows 95中線程的概念及其建立方法後,提出了一種在多線程之間利用 event對象實現事件同步的控制方法。最後還介紹了在不同應用程式之間進行同步事件控制的方法,這種方法使得不同應用程式進行相互間的同步事件控制變得很簡單。

關鍵詞:Windows95 線程

同步事件 event

對象 Win32

一, 引言

Windows 95是一個多任務、多線程的作業系統,其中的每一個應用程式都是一個進程(process)。進程可以建立多個並發的線程(thread),同時進程也以主線程(primarythread)的形式被系統調度。所謂的線程是系統調度的一個基本單位, 在程式中線程是以函數的形式出現的,它的代碼是進程代碼的一部分,並與進程及其派生的其它線程共用進程的全域變數和檔案開啟表等公用資訊。主線程類似於UNIX系統中的父進程,線程則類似於子進程。主線程也是一個線程,稱作主線程僅僅是為了和它建立的線程區別開來。每個線程都相對於主線程而獨立運行,為了使得線程能對使用者的控製作出響應,必須控制線程的運行,比如使用者可暫停、終止一個線程的運行或改變線程啟動並執行條件等。而且在使用者控制與線程運行之間有時應該有一定的同步控制關係,以保證使用者對線程的有效控制。線程可以根據不同的條件對使用者的控製作出不同的響應。為了實現上述目的必須使用系統提供的同步對象(Synchronization Object),如event對象。 編寫多線程應用程式必須使用Win32 API。

二, 線程的建立方法

調用Win32 API中的CreateThread函數建立線程。hThread=CreateThread(NULL,0,&TEventWindow::ThreadFunc,this,0,&hThreadId);第一個參數設定線程的安全屬性,因其僅用於Windows NT,故不設定。第二個參數為0指定線程使用預設的堆棧大小。第三個參數指定線程函數,線程即從該函數的入口處開始運行,函數返回時就意味著線程終止運行。第四個參數為線程函數的參數,可以是指向任意資料類型的指標。第五個參數設定線程的產生標誌。hThreadId存放線程的標識號。線程函數如下定義,上述的 this參數是指向線程所屬視窗的控制代碼指標,通過thrdWin參數傳送過來,利用這個指標再調用相應的LoopFunc函數,線程的具體事務都在這個函數中執行。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.