//執行緒通訊: 乙個執行緒完成了自己的任務時,要通知另外乙個執行緒去完成另外乙個任務.
//wait(): 等待 如果執行緒執行了wait方法,那麼該執行緒會進入等待的狀態,等待狀態下的執行緒必須要被其他執行緒呼叫notify方法才能喚醒。
//notify(): 喚醒 喚醒執行緒池等待執行緒其中的乙個。
//notifyall() : 喚醒執行緒池所有等待 執行緒。
//wait與notify方法要注意的事項:
// 1. wait方法與notify方法是屬於object物件 的。
// 2. wait方法與notify方法必須要在 同步**塊 或者是 同步函式中才能 使用。
// 3. wait方法與notify方法必需要由鎖物件呼叫。
//產品類
class product
//生產者
class producer extends thread
@override
public void run() else
system.out.println("生產者生產出了:"+ p.name+" **是:"+ p.price);
p.flag = true;
i++;
p.notifyall(); //喚醒消費者去消費
}else catch (interruptedexception e) }}
} }}
//消費者
class customer extends thread
@override
public void run() else catch (interruptedexception e) }}
} }}
public class xxtx
}
生產者消費者 生產者與消費者模式
一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...
生產者消費者
using system using system.collections.generic using system.threading namespace gmservice foreach thread thread in producers q.exit console.read public...
生產者消費者
生產者和消費者是一種經典的供求案例,生產者和消費者執行緒之間的關係涉及執行緒之間的互動。生產者執行緒產生的資料項,將來會被消費者消費,每個生產出來的資料會被儲存在乙個共享的倉庫中。假設執行緒以不同的速度進行,那麼將會導致消費者可能獲取到還未生產的資料,生產者也有可能在消費者還未取走前一條資料的前提下...