C 多執行緒的用法3 執行緒間的協作Join

2022-04-04 11:27:38 字數 1179 閱讀 3047

在建立多執行緒應用程式時,如何確保執行緒間的協作往往比讓執行緒工作更重要。

執行緒間的協作最簡單的方式是採用join來進行,如下:

/// /// 多執行緒協作-join方式

/// 解決執行緒間同步工作問題

///

private static void multithreadsynergicwithjoin()

start work", thread.currentthread.name));

random random = new random();

trywork over", thread.currentthread.name));

thread.sleep(1000);

}catch (threadabortexception ex)

abort", thread.currentthread.name));}})

;customer = new thread(() =>

start work", thread.currentthread.name));

trywork over", thread.currentthread.name));

}catch (threadinterruptedexception ex)

interrupted", thread.currentthread.name));}})

;console.writeline("main thread");

customer.start();

producer.start();

console.writeline("main thread wait sub thread");

}

說明:

1、在呼叫producer.join()時,customer執行緒將暫停執行而進入等待producer執行緒執行的過程。在producer執行緒執行完畢後,customer執行緒才返回繼續執行後續**。

2、producer與customer誰先啟動無所謂,但應保證在呼叫producer.join時滿足:producer執行緒必須啟動過,即呼叫過start方法,如果在呼叫join時,被呼叫執行緒已經結束或終止,join方法將立即返回執行後續**

3、對於多執行緒間的協作join方式較為適合執行緒數量不多,對資源需求有明確先後順序的情況(個人總結,如有錯誤,歡迎拍磚)。

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 多執行緒的用法4 執行緒間的協作lock快捷方式

執行緒間協作還可通過lock 加鎖 方式進行,lock屬於c 的monitor語法糖 monitor後續講解 使用簡單快捷,如下 多執行緒協作 lock快捷方式 成功解決多執行緒對單一資源的共享 private static void multithreadsynergicwithlock work...