C 多執行緒的用法4 執行緒間的協作lock快捷方式

2022-04-04 11:27:37 字數 881 閱讀 6271

執行緒間協作還可通過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 ...