首先建立全域性變數:
int count =0;
object monitorobject = new object();
建立兩個任務:
public void task01()
}public void task02()
}
控制台程式啟動多執行緒,並列印count的值:
task t1 = task.run(task01);
task t2 = task.run(task02);
t1.wait();
t2.wait();
console.writeline("count的值:" + count);
console.readline();
若果沒有,由於多執行緒的資源競爭,count的結果是不準確的,前提是迴圈的次數足夠大。
monitor.enter(monitorobject);
monitor.exit(monitorobject);
也可以簡單的利用lock
public void task01()}}
public void task02()
}}
原理都是一樣的。 C 多執行緒同步
在開發中經常會遇到執行緒的例子,如果某個後台操作比較費時間,我們就可以啟動乙個執行緒去執行那個費時的操作,同時程式繼續執行。在某些情況下可能會出現多個執行緒的同步協同的問題,下面的例子就展示了在兩個執行緒之間如何協同工作。這個程式的思路是共同做一件事情 從乙個arraylist中刪除元素 如果執行完...
多工 單 多執行緒 同步 死鎖
多工簡介,同步的概念,互斥鎖 多工 作業系統輪流讓各個任務交替執行,cpu的執行速度很快,感覺上就像所有任務都在同時執行.真正的多工執行只能在多核cpu上實現.併發 併發指任務數多於cpu核數,通過作業系統分配執行.並行 並行指任務數小於cpu核數,任務真的是一起執行.執行緒 1.使用threadi...
C 多執行緒 執行緒同步事件
1 事件 事件是核心物件,多用於執行緒間通訊,可以跨程序同步 2 事件使用 1 建立事件 handle createevent lpsecurity attribute slpeventattributes,安全控制,一般直接傳入null bool bmanualreset,確定事件是手動還是自動 ...