大数据第8天作业
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据第8天作业相关的知识,希望对你有一定的参考价值。
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; } //run public 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天作业的主要内容,如果未能解决你的问题,请参考以下文章