執行緒中生產者和消費者

2021-07-22 20:39:47 字數 1733 閱讀 7303

package com.thread.p_c;

public

class valueobject

package com.thread.p_c;

public

class p

public

void

setvalue()

string value = system.currenttimemillis() + "_" + system.nanotime();

system.out.println("set的值是" + value);

valueobject.value = value;

lock.notify();

}} catch (interruptedexception e) }}

package com.thread.p_c;

public

class c

public

void

getvalue()

system.out.println("get 的值是" + valueobject.value);

主線程中啟動生產者和消費者執行緒,當生產者執行緒和消費者執行開始。一開始 valueobject 物件的值為空,則不進入if判斷條件中。

接下來對 valueobject.value 賦值,並呼叫 notify() 方法,notify() 方法,喚醒已經等待的消費者執行緒。

主線程中啟動生產者和消費者執行緒,當生產者執行緒和消費者執行開始。

一開始 valueobject 物件的值為空,則進入 if 判定條件中,呼叫wait() 方法,鎖物件丟擲,執行緒等待。

直到生產者執行緒呼叫 notify() 方法。喚醒消費這執行緒。喚醒消費者執行緒後,執行緒繼續向下執行。

直到執行 notify() 喚醒生產者執行緒。

由上所述,連個執行緒交替執行。

生產者消費者執行緒

include include include includeusing namespace std typedef int semaphore 訊號量是一種特殊的整型變數 const int size of buffer 5 緩衝區長度 const unsigned short producers...

生產者消費者執行緒

該簡單生產者 消費者執行緒,屬於本人學習過程中的一段練習 如有不足,請指點 package com.lanqiao.demo3 author 大廣子 類說明 簡單的生產者,消費者執行緒 public class threadptcs catch interruptedexception e 退出 s...

c 中生產者消費者問題

乙個同步程式,生產者向乙個緩衝區 定義為三個位元組 中寫入資料,消費者從中提取數 據,如果緩衝區中沒有資料,那麼consumer只好wait,進入等待狀態,當另乙個執行緒 也就是 生產者 向緩衝區中寫入資料猴,執行了monitor.pulse,喚醒了consumer的等待,開始讀取 資料.反之,當p...