欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java用多线程来模拟烧水泡茶,最优线路

程序员文章站 2022-04-16 09:18:27
我们最近学习了java的多线程,现在我们来模拟一个烧水泡茶的最优过程。上面的是过程图下面直接上代码:package come;class xishuihu extends Thread {public void run() {System.out.println("开始洗水壶!!!");System.out.println("水壶洗干净了!!!");}}class nacaye extends Thread {public void run() {Syst...

我们最近学习了java的多线程,现在我们来模拟一个烧水泡茶的最优过程。
java用多线程来模拟烧水泡茶,最优线路
上面的是过程图
下面直接上代码:

package come;

class xishuihu extends Thread {
	public void run() {
		System.out.println("开始洗水壶!!!");
	
	System.out.println("水壶洗干净了!!!");
	}
	
}
class nacaye extends Thread {
	public void run() {
		System.out.println("拿茶叶");
		System.out.println("茶叶拿来了");
	
	}
	
}
class xichahu extends Thread {
	public void run() {
		System.out.println("洗茶壶!");
		System.out.println("茶壶洗干净了!");
	
	}
	
}
class xicabei extends Thread {
	public void run() {
		System.out.println("开始洗茶杯!!!");
	
	System.out.println("茶杯洗干净了!!!");
	}
	
}
class paocha extends Thread{
	public void  run() {
		for(int i=1;i<5;i++)
		{
		System.out.println("开始泡茶!");
		try
		{
			Thread.sleep(100);
		}
		catch(Exception e) {
			e.printStackTrace();
		}
		System.out.println("第"+i+"杯茶泡好了!!!");
	}
	}
	
}

class shaosui extends Thread {
	public void run() {
		System.out.println("开始烧水!!!");
		try
		{
			Thread.sleep(1500);
		}
		catch(Exception e) {
			e.printStackTrace();
		}
	System.out.println("水烧开了!!!");
	}
	
}

public class ss {
	public static void main(String []args)
	{
		Thread a=new shaosui();
		Thread b=new paocha();
		Thread c=new xishuihu();
		Thread d=new xichahu ();
		Thread e=new xicabei ();
		Thread i=new nacaye ();
		System.out.println("请各位喝茶!");
		
		
		
		//洗水壶,在1分钟内洗水壶,用sleep(100)表示花一分钟洗水壶,下同
		c.start();
		try
		{
			Thread.sleep(100);
		}
		catch(Exception p) {
			p.printStackTrace();
		}
		
		//烧水,烧水所需要的的15分钟时间在其run函数里实现
		a.start();
		
		
		
		
		//洗茶壶,洗一分钟
		d.start();
		try
		{
			Thread.sleep(100);
		}
		catch(Exception f) {
			f.printStackTrace();
		}
		
		//洗茶杯,洗两分钟
		e.start();
		try
		{
			Thread.sleep(200);
		}
		catch(Exception g) {
			g.printStackTrace();
		}
	
		//拿茶叶!拿来茶叶要一分钟,因为烧水要15分钟,所以我们还要等待12分钟,就直接等待13分钟,多一点时间是为了满足水先烧开,再进行泡茶
		i.start();
		try
		{
			Thread.sleep(1301);
		}
		catch(Exception g) {
			g.printStackTrace();
		}
		
		b.start();//泡茶,循环泡茶,一杯茶用一分钟泡好
	}
}

这样,我们就在烧水的时候,去洗茶壶,洗茶杯,拿茶叶,就是最优化了。
下面是运行的结果:

请各位喝茶!
开始洗水壶!!!
水壶洗干净了!!!
开始烧水!!!
洗茶壶!
茶壶洗干净了!
开始洗茶杯!!!
茶杯洗干净了!!!
拿茶叶
茶叶拿来了
水烧开了!!!
开始泡茶!
第1杯茶泡好了!!!
开始泡茶!
第2杯茶泡好了!!!
开始泡茶!
第3杯茶泡好了!!!
开始泡茶!
第4杯茶泡好了!!!

欢迎大家来评论留言java用多线程来模拟烧水泡茶,最优线路

本文地址:https://blog.csdn.net/zjlzjlpy/article/details/109558599

相关标签: 笔记