大資料第8天作業

來源:互聯網
上載者:User

標籤:family   汽車   

  1. 5輛汽車過山洞,依次經過山洞。每輛車通過山洞花費10秒,使用多線程實現。

class Cave{//private boolean deng=true;//public synchronized getDeng(){//if(deng=true){//}//}}class Car extends Thread{private String name;private Cave cave;public Car(){System.out.println("car^^^^^^^^");}public Car(String name,Cave cave){this.name=name;this.cave=cave;}//public void run(){synchronized(cave){System.out.println(name+"進洞");try{Thread.sleep(1000);System.out.println(name+"出洞");}catch (Exception e){}}}}class CaveDemno{public static void main(String[] args){Cave cave=new Cave();Car c1=new Car("car1",cave);Car c2=new Car("car2",cave);Car c3=new Car("car3",cave);Car c4=new Car("car4",cave);Car c5=new Car("car5",cave);c1.start();c2.start();c3.start();c4.start();c5.start();}}

2. 用多線程類比蜜蜂和熊的關係。

   蜜蜂是生產者,熊是消費者。蜜蜂生產蜂蜜是累加的過程,熊吃蜂蜜是批量(滿100吃掉)的過程。

   生產者和消費者之間使用通知方式告知對方。注意不能出現死結的現象。


/*

**用多線程類比蜜蜂和熊的關係。

**蜜蜂是生產者,熊是消費者。蜜蜂生產蜂蜜是累加的過程,熊吃蜂蜜是批量(滿100吃掉)的過程。

**生產者和消費者之間使用通知方式告知對方。注意不能出現死結的現象。

*/


/*

**用多線程類比蜜蜂和熊的關係。

**蜜蜂是生產者,熊是消費者。蜜蜂生產蜂蜜是累加的過程,熊吃蜂蜜是批量(滿100吃掉)的過程。

**生產者和消費者之間使用通知方式告知對方。注意不能出現死結的現象。

*/

import java.util.ArrayList;import java.util.List;class Bee extends Thread{final static int MAX=100;java.util.List<Integer> list;String name;public Bee(java.util.List<Integer> list,String name){this.list=list;this.name=name;}//runpublic void run(){int i=1;while(true){//對集合進行同步synchronized(list){int size=list.size();if(size >= MAX){try{list.wait();}catch(Exception e){ }}else{//不夠100則生產蜂蜜list.add(new Integer(i));System.out.println("生產蜂蜜:"+i);i++;list.notifyaAll();}}//yield();}}}//狗熊類class Bear extends Thread{java.util.List<Integer> list;String name;public Bear(java.util.List<Integer> list,String name){this.list=list;this.name=name;}//吃蜜public void run(){while(true){synchronized(list){//對集合進行同步操作int size=list.size();if(size<=MAX){try{list.wait();}catch(Exception e){}}else{Integer i=list.remove(99);//吃完System.out.println("狗熊吃蜜:"+i);list.notifyAll();}}//yield();}}}class BearDemo{public static void main(String[] args){java.util.List<Integer> list=new java.util.ArrayList<Integer>();Bee bee=new Bee(list,"蜜蜂");Bear bear=new Bear(list,"狗熊");bee.start();bear.start();}}


大資料第8天作業

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.