多线程编程之排水问题

编程入门 行业动态 更新时间:2024-10-22 07:38:37

<a href=https://www.elefans.com/category/jswz/34/1767532.html style=多线程编程之排水问题"/>

多线程编程之排水问题

创建一个容量为 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.elefans.com/category/jswz/34/1673735.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多线程

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!