多執行緒 生產者和消費者的問題

2022-09-01 19:36:14 字數 1303 閱讀 1939

生產者和消費者問題的產生

生產者和消費者是指倆個不同的執行緒物件,操作統一資源的情況:生產者負責生產資料,消費者負責消費資料,生產者每生產完一組資料後,消費者  消費一組資料,

object對多執行緒的支援:

wait();等待被喚醒  notify();喚醒  notifyall();喚醒所有

sleep()和wait()的區別:

sleep()屬於thread類,類似於乙個鬧鐘,只持續一定時間。wait()屬於object類,需要被notify()喚醒,如果不喚醒就會一直等待下去

具體案例如下:

/*

* * */

package com.mindrader.thread;/**

* @作者 mind reader

* @內容 多執行緒——生產者和消費者基本案例

* @專案名 thread_demo

* @日期 2023年5月11日

* @時間 上午10:49:09

* */public

class

threaddemo2

}class data

catch

(interruptedexception e)

}this.name=name;

this.content =content;

super.notify();

exsit=true;//存在}

public synchronized string get

()

catch

(interruptedexception e)

}string arr=;

super.notify();

exsit=false

;

return

arr;

}}class pro implements runnable

@override

public

void

run()

catch

(interruptedexception e)

if (i%2==0

) else}}

}class cus implements runnable

@override

public

void

run()

catch

(interruptedexception e)

string arr;

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

}}

多執行緒 生產者和消費者問題

緩衝區 緩衝區 擁有乙個值,可以設定可以獲得 public class buffer public void setvalue int value 生產者執行緒 生產者執行緒 public class setthread extends thread public void run 消費者執行緒 消...

生產者消費者,多執行緒問題

從上乙個小測試當中,我們會發現執行緒之間存在爭奪問題,所以在這裡用上了訊號鎖 include include include include include include include define max size 5 struct data structpro max size sem t ...

多執行緒 生產者消費者問題

package multithreading.pc 測試 生產者消費者模型 利用緩衝區解決 管程法 生產者,消費者,產品,緩衝區 public class testpc 生產者 class productor extends thread 生產 override public void run 消費...