C 多執行緒同步

2022-02-22 23:08:15 字數 917 閱讀 3675

在開發中經常會遇到執行緒的例子,如果某個後台操作比較費時間,我們就可以啟動乙個執行緒去執行那個費時的操作,同時程式繼續執行。在某些情況下可能會出現多個執行緒的同步協同的問題,下面的例子就展示了在兩個執行緒之間如何協同工作。

這個程式的思路是共同做一件事情(從乙個arraylist中刪除元素),如果執行完成了,兩個執行緒都停止執行。

**如下:

public class threaddemo

public threaddemo(int number)

threadone = new thread(new threadstart(run));//兩個執行緒共同做一件事情

threadtwo = new thread(new threadstart(run));//兩個執行緒共同做一件事情

threadone.name = "執行緒1";

threadtwo.name = "執行緒2";

onnumberclear += new eventhandler(threaddemo_onnumberclear);

}/// 

/// 開始工作

/// 

public void action()

/// 

/// 共同做的工作

/// 

private void run()

monitor.exit(this);//取消鎖定

thread.sleep(5);}}

//執行完成之後,停止所有執行緒

void threaddemo_onnumberclear(object sender, eventargs e)

}說明:要實現執行緒同步不止這一種方式。在這裡採用了事件,在事件處理程式裡中止了執行緒(主要是回答csdn論壇的乙個朋友的問題才用了這種辦法)。

本文出自 「周公(周金橋)的專欄」 部落格,請務必保留此出處

C 多執行緒 執行緒同步事件

1 事件 事件是核心物件,多用於執行緒間通訊,可以跨程序同步 2 事件使用 1 建立事件 handle createevent lpsecurity attribute slpeventattributes,安全控制,一般直接傳入null bool bmanualreset,確定事件是手動還是自動 ...

C 多執行緒執行緒同步問題

程序通常被定義為乙個正在執行的程式的例項,是乙個程式在其自身位址空間中的一次執行活動。程序從來不執行任何東西,它是執行緒的容器。若要程序完成某項操作它必須擁有乙個在它的環境中執行的執行緒,此執行緒負責包含執行包含在程序位址空間中的 現存由執行緒的核心物件和執行緒棧兩部分組成。作業系統用執行緒的核心物...

C 多執行緒實踐 執行緒同步

下面的 列展了.net對協調或同步執行緒動作的可用的工具 簡易阻止方法 構成 目的 sleep 阻止給定的時間週期 join 等待另乙個執行緒完成 鎖系統 構成 目的 跨程序?速度 lock 確保只有乙個執行緒訪問某個資源或某段 否快 mutex 確保只有乙個執行緒訪問某個資源或某段 可被用於防止乙...