码迷,mamicode.com
首页 > 其他好文 > 详细

大数据第8天作业

时间:2016-03-19 06:24:09      阅读:174      评论:0      收藏:0      [点我收藏+]

标签: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;
}
//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天作业

标签:family   汽车   

原文地址:http://wwywinnie.blog.51cto.com/10421959/1752778

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!