多執行緒程式設計核心技術讀書筆記(三) 程序間通訊

2021-08-07 16:01:20 字數 657 閱讀 7988

執行緒通訊的目標是使執行緒間能夠互相傳送訊號。另一方面,執行緒通訊使執行緒能夠等待其他執行緒的訊號。在wait()/notify()機制中,不要使用全域性物件,字串常量等。應該使用對應唯一的物件。

生產者/消費者模式實現:

等待/通知模式最經典的案例就是「生產者/消費者」模式。

1、生產者僅僅在倉儲未滿時候生產,倉滿則停止生產。

2、消費者僅僅在倉儲有產品時候才能消費,倉空則等待。

3、當消費者發現倉儲沒產品可消費時候會通知生產者生產。

4、生產者在生產出可消費產品時候,應該通知等待的消費者去消費。

通過管道進行執行緒通訊:位元組流

管道流:pipestream

pipedinputstream、pipedoutputstream

pipedreader、pipedwriter

通過管道進行執行緒通訊:字元流

join方法(之前總結過了)

類threadlocal的使用

每個執行緒中的共享變數:每個執行緒繫結自己的值(比喻成全域性存放資料的盒子,盒子中可以存放每個執行緒的私有資料)(執行緒變數具有隔離性)

類threadlocal的使用

讓子執行緒從父執行緒中取得值;

《java 多執行緒程式設計核心技術》讀書筆記六

reentrantlock reentrantreadwritelock reentrantlock lock unlock 這兩個方法之間的 為執行緒同步執行 持有相同鎖的方法均為同步執行 condition await 等同 object中的wait signal 等同object中的notif...

《java多執行緒程式設計核心技術》核心筆記 一

執行緒具有優先順序 執行緒的優先順序具有繼承特性。被呼叫者繼承呼叫者的優先順序 優先順序高的執行緒 絕大部分會現執行 方法內的變數是執行緒安全的。多個執行緒訪問同乙個物件的同步方法時,一定是執行緒安全的。synchronized取得的是物件鎖 多個執行緒訪問乙個物件 synchronized 如果乙...

《java多執行緒程式設計技術核心》 讀書筆記4

等待通知機制wait notify 的用法 class mythread1 extends thread public void run catch interruptedexception e class mythread2 extends thread public void run publi...