乙個演示多執行緒操作及同步的C 程式

2021-04-09 09:58:28 字數 974 閱讀 9755

/**/

/** envionment: win2kserver+vc#.net2005

* author:     wandywang 

* verion:     1.0

* date:       06-3-7

* abstract:   演示c#中多執行緒操作及其同步,示例的原型來自於c#primer5.7節,細節有所改動 

*/

using

system;

using

system.collections.generic;

using

system.text;

using

system.threading;

/**/

/** 三個執行緒:主線程,ping執行緒(ping.play),pong執行緒(pong.play)

* 主線程  - 輸出ping物件和pong物件的count屬性值 用綠色

* ping執行緒 - 對ping.count加1,輸出"ping" 用黃色

* pong執行緒 - 對pong.count加1,輸出"ping" 用紅色

* 執行緒同步:使用mutex變數進行同步,不讓三個執行緒的輸出顏色混亂

* 輸出  :當去掉同步語句時會出現顏色混亂,但加上同步,則不會出現三個執行緒輸出顏色混亂

*      根據睡眠時間和輸出的交錯次數可以看出各個執行緒得到相等的排程優先權

* */

namespace

csprimer5_7

...//

暫停螢幕

console.readline();}}

class

pingpong

...private

int_count;

public

intcount

...}

public

void

play()

...}}}

乙個多執行緒同步問題

昨天,路過的時候,發現了這個問題 class syncclass catch exception e system.out.println class test implements runnable public void run 輸出結果如圖 其實synchronized void synmth...

乙個經典的多執行緒同步問題

本篇文章參考了 程式描述 主線程啟動10個子執行緒並將表示子線程式號的變數位址作為引數傳遞給子執行緒。子執行緒接收引數 sleep 50 全域性變數 sleep 0 輸出引數和全域性變數。要求 1 子執行緒輸出的線程式號不能重複。2 全域性變數的輸出必須遞增。下面畫了個簡單的示意圖 分析下這個問題的...

C 乙個簡單的C 多執行緒間同步的例子

在開發中經常會遇到執行緒的例子,如果某個後台操作比較費時間,我們就可以啟動乙個執行緒去執行那個費時的操作,同時程式繼續執行。在某些情況下可能會出現多個執行緒的同步協同的問題,下面的例子就展示了在兩個執行緒之間如何協同工作。這個程式的思路是共同做一件事情 從乙個arraylist中刪除元素 如果執行完...