多執行緒學習筆記4 執行緒間的通訊 2

2021-07-31 17:02:40 字數 1288 閱讀 3172

多執行緒通訊(2)

位元組流中的管道流(pipestream)是一種特殊的流,用於在不同執行緒之間直接傳輸資料

乙個執行緒傳送資料到輸出管道,另乙個執行緒從輸入管道讀取資料

jdk提供了四個類來使執行緒進行通訊

1.pipedinputstream和pipedoutputstream

2.pipedreader和pipewriter

例子:乙個用於寫入流的類:

public class writerdata

system.out.println();

out.close();

}catch(ioexception e)}}

乙個用於讀取流的類:

public class readdata

system.out.println();

input.close();

}catch(ioexception e)}}

寫入執行緒:

public class threadwrite extends thread

public void run()

}讀取執行緒:

public class threadread extends thread

public void run()

public static void main(string args) catch(ioexception e)catch(interruptedexception e)}}

利用變數控制線程的順序

用於操作a和b的類

public class dbtools

for(int i = 0;i < 5;i++)

preisa = true;

notifyall();

}catch(interruptedexception e)

}synchronized public void backupb()

for(int i = 0;i < 5;i++)

preisa = false;

notifyall();

}catch(interruptedexception e)}}

執行緒a:

public class backupa extends thread

public void run()

}執行緒b:

public class backupb extends thread

public void run()

public static void main(string args) }}

輸出結果:

JUC 多執行緒(2 執行緒間的通訊)學習筆記

3.多執行緒模板 3 4.執行緒通訊中 synchronized 與 lock 5.執行緒間定製化呼叫通訊 精準喚醒 生產者 消費者 通知等待喚醒機制 1.判斷 判斷有無產品 2.幹活 如果沒有產品,則先生成 如果已有產品,則先消費 3.通知 通知對方我已經幹完了,該你了 public class ...

多執行緒 4執行緒間的通訊

wait和notify方法 簡單的生產者消費者 面試點1.wait和notify方法 當乙個物件呼叫了wait方法那麼它將阻塞當前執行緒,直到有另外乙個執行緒呼叫了當前物件的notify方法,被阻塞的執行緒才可能被喚醒。注意 若要呼叫這兩個方法必須先獲得物件的鎖,不讓會丟擲異常 public sta...

Java多執行緒 4 執行緒間通訊

有這麼幾個方法,它們就定義在大家都非常熟悉的object類中,但是大家卻從來沒有呼叫過,並且也不知道是做什麼的,今天就由我帶著你們熟悉一下下面的這三個方法。它們都是定義在object類中的final方法,並且只能在synchronized上下文中呼叫。如果你現在還不明白,沒關係,下面我會用乙個 生產...