[Java] 纯文本查看 复制代码
package com.heima.test;
public class Test02 {
/**
* 飞毛腿快递公司有1000件快递,现在有两个员工(张三,李四)同时送快递,送一件快递需要5ms,一个快递能赚0.5员
* 问,他们分别送了多少件快递,分别赚了多少钱
* 注意:一个员工只能输出一个
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
FeiMaoTui fmt = new FeiMaoTui();
Thread t1 = new Thread(fmt);
Thread t2 = new Thread(fmt);
t1.setName("张三");
t2.setName("李四");
t1.start();
t2.start();
}
}
class FeiMaoTui implements Runnable {
private int kuaijian = 1000;
int sum =0;
int count = 0;
@Override
public void run() {
while (true) {
synchronized (this) {
if (kuaijian <= 0) {
break;
}
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
if ("张三".equals(Thread.currentThread().getName())) {
sum = sum +1;
kuaijian = kuaijian -1 ;
}else if ("李四".equals(Thread.currentThread().getName())) {
count = count +1;
kuaijian = kuaijian -1 ;
}
}
}
synchronized (this) {
if (("张三".equals(Thread.currentThread().getName()))) {
System.out.println(Thread.currentThread().getName() + "...送了" + sum + "件快递,工赚了" + (sum * 0.5) + "元");
}else if (("李四".equals(Thread.currentThread().getName()))) {
System.out.println(Thread.currentThread().getName() + "...送了" + count + "件快递,工赚了" + (count * 0.5) + "元");
}
}
}
}