生產者消費者

2021-09-19 04:27:53 字數 1290 閱讀 1612

題目大意 :

我有生產者和消費者 。規定我只有乙個盤子 ,要求生產者生產完畢,消費者才能去消費。消費者消費完畢,生產者才能去生產。

且開始時必須要求是生產者先進行生產

消費者:

package com.candp;

public class consumer implements runnable

@override

public void run() catch (interruptedexception e)

}try catch (interruptedexception e)

system.out.println("消費者消費了 "+ good.get());

//此時我已經消費完畢,我需要將盤子置為空

good.flag = false;

good.notify();//喚醒等待執行緒}}

} }

生產者

package com.candp;

public class product implements runnable

int i = 0;

@override

public void run() catch (interruptedexception e)

}try catch (interruptedexception e)

//到這裡說明flag為false,生茶者可以進行生產

if(i%2 == 0) else

system.out.println("生產者生產了"+good.get());

i++;

//我生產完畢了

good.flag = true;//此時我應該將盤子的標記置為true說明盤子裡面有東西

good.notify();//若生產者執行緒在等待我就去喚醒它

}} }

}

產品:

package com.candp;

public class goods

public string get()

public void setname(string name1)

}

實現類:

package com.candp;

public class demo

}

注 : 使用runnable實現類去共同競爭資源時。把共享的資源作為物件新增到runnable實現類裡面。這樣可以達到資源共享的目的

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...

生產者消費者

using system using system.collections.generic using system.threading namespace gmservice foreach thread thread in producers q.exit console.read public...

生產者消費者

執行緒通訊 乙個執行緒完成了自己的任務時,要通知另外乙個執行緒去完成另外乙個任務.wait 等待 如果執行緒執行了wait方法,那麼該執行緒會進入等待的狀態,等待狀態下的執行緒必須要被其他執行緒呼叫notify方法才能喚醒。notify 喚醒 喚醒執行緒池等待執行緒其中的乙個。notifyall 喚...