首页 > 学院 > 开发设计 > 正文

多线程题目

2019-11-10 19:01:39
字体:
来源:转载
供稿:网友
java 多线程 团队因财政紧缺,面临“废队危机”。这时,来自Anzuo组的9位队员挺身而出。为 了化解危机,他们做出了一个艰难的决定——成为偶像。他们希望通过街头开Live卖唱 获得资助,从而维持团队的正常运作。已知: 联创团队的账户中初始时只剩下2000元。 这9人卖唱各自独立工作,每卖唱一次可为团队挣得100元经费。但卖唱后需要休 息一天(实现时用200ms代替)。 团队的日常支出为800元/天,由启明管理员每天(200ms)扣除一次。 当团队账户余额达到10000元时,他们会停止工作,专心写代码。少于10000元时 继续工作。 请学习Java多线程相关知识,模拟上述场景。 输出样例: 我是1号队员,卖唱成功。团队账户余额2100元。 我是3号队员,卖唱成功。团队账户余额2200元。 我是4号队员,卖唱成功。团队账户余额2300元。 我是启明管理员,扣钱成功。团队账户余额1500元。 ………………………… 我是8号队员,卖唱成功。团队账户余额9900元。 我是2号队员,卖唱成功。团队账户余额10000元。 我是9号队员,余额已爆表,专心写代码。 …………………………class MyRunnable implements Runnable{ int money = 2000; public void run() { for (int i = 0; i < 10; i++) { this.Change(); try { Thread.sleep(200); } catch (InterruptedException e) { e.PRintStackTrace(); } } } public synchronized void Change(){ String name = Thread.currentThread().getName(); if (name.equals("启明管理员")) { this.money = this.money - 800; System.out.println("我是启明管理员,扣钱成功,团队账户余额:"+this.money); } else{ if (this.money >= 10000) { System.out.print("我是" + name + ",余额爆表,专心写代码/n"); } else { this.money = this.money + 100; System.out.print("我是" + name + ",卖唱成功。团队账户余额:" + this.money + "/n"); } } }}public class ThreadDemo { public static void main(String[] args) { MyRunnable r = new MyRunnable(); Thread t1 = new Thread(r,"1号队员"); Thread t2 = new Thread(r,"2号队员"); Thread t3 = new Thread(r,"3号队员"); Thread t4 = new Thread(r,"4号队员"); Thread t5 = new Thread(r,"5号队员"); Thread t6 = new Thread(r,"6号队员"); Thread t7 = new Thread(r,"7号队员"); Thread t8 = new Thread(r,"8号队员"); Thread t9 = new Thread(r,"9号队员"); Thread t0 = new Thread(r,"启明管理员"); t1.start(); t2.start(); t3.start(); t4.start(); t5.start(); t6.start(); t7.start(); t8.start(); t9.start(); t0.start(); }}

发现了当时熬测的题目文件 现在试着实现。

为了这些线程共享资源,又有不同的方法,用了个很笨的字符串判断,不知道应该怎么弄会好点。 多看点资料再来改改。


上一篇:r 常规

下一篇:LeetCode 133. Clone Graph

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表