多线程编程之排水问题

阅读: 评论:0

多线程编程之排水问题

多线程编程之排水问题

创建一个容量为 100 升的水池,在水池设置 3 个出水口,A 出水口每秒排出 1
升水,B 出水口一秒排出 2 升水,C 出口一秒排出 3 升水,每一次只能随机打开
一个出口排水,使用线程模拟 3 个出水口随机排水的场景,并计算出多少秒后水
池的水被排光。

public class exercise {volatile int capacity = 100;static int count=0;public synchronized boolean drainage(int value) {if (capacity == 0) {System.out.println("排完水共消耗时间:"+count+"s");return false;	} else {capacity -= value;capacity = capacity < 0 ? 0 : capacity;System.out.println("水池还剩" + capacity + "升水");count++;return true;}}class Outfall extends Thread {String name;int value;public Outfall(String name, int value) {this.name = name;this.value = value;}public void run() {while (drainage(value)) {System.out.println(name + "排水口完成排水");			}}}public void startThread() {Thread a = new Outfall("A", 1);Thread b = new Outfall("B", 2);Thread c = new Outfall("C", 3);a.start();b.start();c.start();}public static void main(String[] args) {exercise p = new exercise();p.startThread();}
}

 

 

本文发布于:2024-02-05 08:16:16,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170728019564850.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:多线程
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23