題目大意 :
我有生產者和消費者 。規定我只有乙個盤子 ,要求生產者生產完畢,消費者才能去消費。消費者消費完畢,生產者才能去生產。
且開始時必須要求是生產者先進行生產
消費者:
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 喚...