为什么这个代码运行的结果有11这个结果啊,我用debug调试的时候到10就退出了
package org.java.demo;
public class Demo {
public static void main(String[] args) {
MyThread mt1 =new MyThread();
mt1.setName("窗口1:");
MyThread mt2 =new MyThread();
mt2.setName("窗口2:");
MyThread mt3 =new MyThread();
mt3.setName("窗口3:");
mt1.start();
mt2.start();
mt3.start();
}
}
package org.java.demo;
public class MyThread extends Thread {
private static int ticket;
private static Object obj = new Object();
public void run() {
while (ticket < 10) {
synchronized (obj) {
ticket++;
try {
sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + ":售出的票的编号为:" + ticket);
}
}
}
}