Java多線程程序四步輕松學(xué)成
我們?cè)谑褂?a >Java多線程程序的時(shí)候會(huì)遇到不少的問題,當(dāng)我們解決這個(gè)問題的時(shí)候在源代碼中就是***的答案發(fā)源地。下面我們就來看看Java多線程程序的源代碼。
對(duì)于Java多線程程序來說,不管任何編程語言,生產(chǎn)者和消費(fèi)者模型都是最經(jīng)典的。就像學(xué)習(xí)每一門編程語言一樣,Hello World!都是最經(jīng)典的例子。實(shí)際上,準(zhǔn)確說應(yīng)該是“生產(chǎn)者-消費(fèi)者-倉儲(chǔ)”模型,離開了倉儲(chǔ),生產(chǎn)者消費(fèi)者模型就顯得沒有說服力了。對(duì)于此模型,應(yīng)該明確一下幾點(diǎn):
1、生產(chǎn)者僅僅在倉儲(chǔ)未滿時(shí)候生產(chǎn),倉滿則停止生產(chǎn)。
2、消費(fèi)者僅僅在倉儲(chǔ)有產(chǎn)品時(shí)候才能消費(fèi),倉空則等待。
3、當(dāng)消費(fèi)者發(fā)現(xiàn)倉儲(chǔ)沒產(chǎn)品可消費(fèi)時(shí)候會(huì)通知生產(chǎn)者生產(chǎn)。
4、生產(chǎn)者在生產(chǎn)出可消費(fèi)產(chǎn)品時(shí)候,應(yīng)該通知等待的消費(fèi)者去消費(fèi)。
此模型將要結(jié)合java.lang.Object的wait與notify、notifyAll方法來實(shí)現(xiàn)以上的需求。這是非常重要的。
Java多線程程序代碼
- public class Test {
- public static void main(String[] args) {
- Godown godown = new Godown(30);
- Consumer c1 = new Consumer(50, godown);
- Consumer c2 = new Consumer(20, godown);
- Consumer c3 = new Consumer(30, godown);
- Producer p1 = new Producer(10, godown);
- Producer p2 = new Producer(10, godown);
- Producer p3 = new Producer(10, godown);
- Producer p4 = new Producer(10, godown);
- Producer p5 = new Producer(10, godown);
- Producer p6 = new Producer(10, godown);
- Producer p7 = new Producer(80, godown);
- c1.start();
- c2.start();
- c3.start();
- p1.start();
- p2.start();
- p3.start();
- p4.start();
- p5.start();
- p6.start();
- p7.start();
- }
- }
以上就是對(duì)Java多線程程序的相關(guān)代碼介紹。
【編輯推薦】