多執行緒(同步 通訊等)

2021-07-07 09:22:06 字數 919 閱讀 6793

/** 生產者將產品交給店員,二消費者從店員處取走產品;

* 店員持有的產品數量不超過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 ...