執行緒間協作還可通過lock(加鎖)方式進行,lock屬於c#的monitor語法糖(monitor後續講解)。使用簡單快捷,如下:
/// /// 多執行緒協作-lock快捷方式/// 成功解決多執行緒對單一資源的共享
///
private static void multithreadsynergicwithlock()
work count:。--", thread.currentthread.name, count, array[0], array[1], array[2]));
}thread.sleep(100);}})
;thread customer = new thread(() =>
start work", thread.currentthread.name));
int count = 0;
while (true)
work count:。--", thread.currentthread.name, count, array[0], array[1], array[2]));
array[0] = 0;
array[1] = 0;
array[2] = 0;
}thread.sleep(10);}})
;producer.start();
customer.start();
}
說明:
1、通過lock成功解決了多個執行緒對同一資源的共享使用問題,確保乙個執行緒在lock到資源後,另外需要資源的執行緒只能處於等待狀態。
2、lock並不能解決執行緒間順序執行的問題(執行緒順序執行是指:要求執行緒a,b滿足,a先執行,b再執行,a又執行,b再次執行這種交替模式)
C 多執行緒的用法6 執行緒間的協作Mutex
多執行緒協作 mutex private static void multithreadsynergicwithmutex mutex.releasemutex thread thread2 new thread mutex.releasemutex thread1.start thread2.st...
C 多執行緒的用法5 執行緒間的協作Monitor
之前我們使用lock快捷方式,實現了多執行緒對同一資源的共享。在c 中lock實際上是monitor操作的簡化版本。下面使用monitor來完成之前的lock功能,你可以在此做一下對照 private static void multithreadsynergicwithmonitor work c...
C 多執行緒的用法3 執行緒間的協作Join
在建立多執行緒應用程式時,如何確保執行緒間的協作往往比讓執行緒工作更重要。執行緒間的協作最簡單的方式是採用join來進行,如下 多執行緒協作 join方式 解決執行緒間同步工作問題 private static void multithreadsynergicwithjoin start work ...