java多线程(5)模拟排队叫号程序,不能出现交替执行的结果

package com.javaconcurrencyprogramming.chapter1;

/**
* @description: 排队叫号程序,还是有问题
* @author:
* @create:
**/

public class TicketWindowRunnable implements Runnable{

private int index = 1; //不做static修饰

private final static int MAX = 50;


@Override
public void run() {

while (index <= MAX){

System.out.println(Thread.currentThread() + " 的号码是: " + (index++));

try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}


public static void main(String[] args) {

final TicketWindowRunnable task = new TicketWindowRunnable();

Thread windowThread1 = new Thread(task, " 一号窗口");

Thread windowThread2 = new Thread(task, " 一号窗口");

Thread windowThread3 = new Thread(task, " 一号窗口");

Thread windowThread4 = new Thread(task, " 一号窗口");

windowThread1.start();

windowThread2.start();

windowThread3.start();

windowThread4.start();
}
}
posted @ 2019-04-19 19:25  深渊中的鱼  阅读(660)  评论(0编辑  收藏  举报