62,614
社区成员
发帖
与我相关
我的任务
分享
private static BlockingQueue<对象> queue = new ArrayBlockingQueue<对象>(100);
public class Test extends Thread{
private static int tickets = 100;
private String name;
public Test(String name){
this.name=name;
}
private static synchronized int sellOneTicket(){
return tickets--;
}
private static boolean haveTicket(){
boolean b = false;
if(tickets>0){
b=true;
}
return b;
}
@Override
public void run() {
while(Test.haveTicket()){
System.out.println(this.name + "正在出售第" + sellOneTicket() + "张票");
}
}
//Main方法
public static void main(String[] args){
Test t1 = new Test("窗口1");
Test t2 = new Test("窗口2");
t1.start();
t2.start();
}
}
运行结果:
窗口1正在出售第100张票
窗口1正在出售第99张票
窗口1正在出售第98张票
窗口1正在出售第97张票
窗口1正在出售第95张票
窗口2正在出售第96张票
窗口1正在出售第94张票
窗口2正在出售第93张票
窗口1正在出售第92张票
窗口2正在出售第91张票
窗口1正在出售第90张票
窗口2正在出售第89张票
窗口1正在出售第88张票
窗口2正在出售第87张票
窗口1正在出售第86张票
窗口2正在出售第85张票
窗口1正在出售第84张票
窗口2正在出售第83张票
本人I7处理器 4核。class MyThread extends Thread {
private int num;
public MyThread(int num){this.num=num;}
@Override
public void run() {
while(num>0)
System.out.println(getName() + "正在出售第" + (num--) + "张票");
}
}
public class Test2 {
public static void main(String[] args) {
final int num=100;
MyThread my1 = new MyThread(num);
MyThread my2 = new MyThread(num);
my1.setName("窗口1");
my2.setName("窗口2");
my1.start();
my2.start();
}
}