问题:如何起4个线程同时卖50张票?
第一个例子:
package com.suning.test.thread;
/**
* 多个线程同时使用同一个资源
* 本例中,4个线程各自分别卖了50张票(总共卖了200张票,这不是我们希望的结果)
*
*
* @author guweiqiang
*/
public class ThreadDemo1 extends Thread {
private int ticket = 50;
public void run() {
while (true) {
if (ticket > 0) {
System.out.println(Thread.currentThread().getName() + "is saling ticket" + ticket--);
} else {
break;
}
}
}
public static void main(String[] args) {
new ThreadDemo1().start();
new ThreadDemo1().start();
new ThreadDemo1().start();
new ThreadDemo1().start();
}
}
没有达到目的,改进:
package com.suning.test.thread;
/**
* 多个线程同时使用同一个资源
* 本例中,4个线程各自分别卖了50张票(总共卖了200张票,这不是我们希望的结果)