c 多執行緒 原始碼3

2021-05-26 15:00:03 字數 990 閱讀 5289

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

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

說明:要實現執行緒同步不止這一種方式。在這裡採用了事件,在事件處理程式裡中止了執行緒

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.collections;

using system.threading;

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)

}}

c 多執行緒 原始碼5

c thread.join 方法阻塞呼叫執行緒,直到某個執行緒終止時為止 我們可以這麼理解 當newthread呼叫join方法的時候,mainthread就被停止執行,直到newthread執行緒執行完畢 using system using system.collections.generic ...

《探索C 多執行緒》 thread原始碼(二)

分析thread的內部類id 和 命名空間this thread。this thread中有四個函式,分別是 get id yield sleep for sleep until 它們的定義如下 namespace this thread thrd yield inline void sleep u...

《探索C 多執行緒》 future原始碼(一)

在此之前的幾篇文章分別介紹和分析了c 11.0標準庫中支援多執行緒的幾個標頭檔案 那麼接下來乘熱打鐵,在這篇文章中將要分析的是 多執行緒的非同步操作。多執行緒的非同步操作原始碼在標頭檔案中。我們先來看一看中都定義了些什麼類 函式 classes future future error package...