/*实现一个竞拍抢答程序:要求设置三个抢答者(三个线程),而后同时发出抢答指令,抢答成功者显示成功提示,抢答失败者给出失败提示。*/
package Java多线程_01;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
class MyThread_08 implements Callable{
private boolean flag = false;
@Override
public String call() throws Exception{
synchronized(this) {
if(this.flag == false) {
this.flag = true;
return Thread.currentThread().getName()+"抢答成功!";
}else {
return Thread.currentThread().getName()+"抢答失败!";
}
}
}
}
public class homework_03 {
public static void main(String[] args) throws Exception{
MyThread_08 mt = new MyThread_08();
FutureTask taskA = new FutureTask(mt);
FutureTask taskB = new FutureTask(mt);
FutureTask taskC = new FutureTask(mt);
new Thread(taskA, "竞赛者A").start();
new Thread(taskB, "竞赛者B").start();
new Thread(taskC, "竞赛者C").start();
System.out.println(taskA.get());
System.out.println(taskB.get());
System.out.println(taskC.get());
}
}