創建自定義的線程:目定義的線程必須從鉀hread派生新的子類,而且因為竹hread類的Execute方法是純虛函數,所以必須重載Execute方法,將需要在線程中實現的任務代碼放在Execute方法中。如果E耽cute方法執行完畢,則線程結束并釋放線程占用??臻g?! 《嗑€程中VCL對象的使用:由于C 十Builde:不支持多線程同時訪問vCL庫,所以在編寫多線程序訪問VCL時只能逐個地實現對VCL的訪問。一般有兩種方法。對與一些具有鎖定功能的對象,可以在鎖定之后再進行具體操作。如TCanva。類有一個h祀k過程,在調用畫布作圖前,調用h屺k過程將畫布鎖定,作圖過程完成之后,調用utilock過程解除鎖定?! Th此ad類也提供了Synchronize方法。當需要在線程中訪問vCL對象屬性或調用方法時,通過在Exe-cute中調用Syncllronize過程來避免對vCL的并發訪問。程序運行期間的具體過程是由Synchronize過程來通知主線程,然后王線程在適當的時機來執行synchronize過程的參數列表中那個不帶參數的函數過程?! ≈匾绦騾^段保證一次只有一個線程具有訪問公共數據塊的權利。一旦一個線程進入重要程序段,其他的線程就無法執行這個重要程序段,一直要等到先進入的線程離開以后,其他的線程才可以進入該重要程序段訪問共享的變量和數據:在使用TCriticalsection時,必須先用Acqnire進入臨界區,訪問結束后必須用Release釋放臨界區?! 《嗑€程間的同步:當程序中多個線程同時運行時,可能會使用同一系統資源。或者一個線程的運行要依賴另一個線程的完成。這就存在一個線程間的同步問題。W1N20(多任務操作系統,系統內核提供了事件(Event)、互斥量(Mutex)、信號燈(Sem叩hore)等對象來控制線程間的同步。其中Event對象具有自己的安全屬性、訪問權限和以下兩種狀態的一種:Signaled和nonsignaled。聲明:本文為轉載類文章,如涉及版權問題,請及時聯系我們刪除(QQ: 229085487),不便之處,敬請諒解!