/** 生產者將產品交給店員,二消費者從店員處取走產品;
* 店員持有的產品數量不超過20,如果超過20叫生產者停一下,少於20就繼續生產;
* 如果店員持有的數量為0,讓消費者稍等下,一有產品就通知消費者;
* * 分析:
* 是否有涉及到多執行緒?有,生產者和消費者;
* 是否有涉及到共享資料?有,產品數量,別忘了執行緒安全;
* 是否有涉及到通訊?有,生產者和消費者之間的通訊;
*/public class test
}//店員,管理商品數量;
class clerk
catch (interruptedexception e)
}else
catch (interruptedexception e)
system.out.println("生產者生產後的數量:" + num);
num++;
notifyall(); //將進入等待狀態的cosumeclerk喚醒; }}
public synchronized void cosumeclerk()
catch (interruptedexception e)
}else}}
//生產者;
class producter implements runnable
public void run()
catch (interruptedexception e)
clerk.addclerk();}}
}//消費者;
class customers implements runnable
public void run()
catch (interruptedexception e)
clerk.cosumeclerk();}}
}
Java多執行緒 執行緒的同步與通訊
一 執行緒的同步class window2 implements runnable public class testwindow2 方式二 同步方法 將操作共享資料的方法宣告為synchronized,即此方法為同步方法,能夠保證當其中乙個執行緒執行 此方法時,其他執行緒在外等待直至此執行緒執行完...
轉 Linux多執行緒通訊及同步
建立多任務模型,並用執行緒來實現 符合posix標準的unix作業系統提供了執行緒的控制函式,如 執行緒的建立和終止 執行緒之間的互斥 執行緒之間的同步等。利用這些系統函式可以成功地模擬訊息佇列,來實現執行緒間資料共享和同步,以完成多工的實時性。為成功地描述執行緒間資料共享和同步,以下列任務模型為例...
多執行緒基礎4 同步與通訊
1.什麼情況下需要同步 當多執行緒併發執行同一 時 希望某一段 執行的過程中cpu不要切換到其他執行緒工作.這時就需要同步.2.同步 塊 使用synchronized關鍵字加上乙個鎖物件來定義一段 這就叫同步 塊 多個同步 塊如果使用相同的鎖物件,那麼他們就是同步的 非靜態同步函式的鎖是 this ...