大数据第8天作业

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据第8天作业相关的知识,希望对你有一定的参考价值。

  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天作业的主要内容,如果未能解决你的问题,请参考以下文章

大数据第六天作业

大数据第三天作业

大数据第七天作业

大数据作业第4天

IT十八掌作业_java基础第23天_数据库连接池\反射

大数据作业第三天