public class Test11 {
/**
* 有100份礼品,两人同时发送, 当剩下的礼品小于10份的时候则不再送出, 利用多线程模拟该过程并将线程的名称打印出来.
*/
//将礼物的数量的变量上移成成员变量 私有静态成员变量。
private static int num = 100;
public static void main(String[] args) {
new Thread("发放者1号") {
//从写run方法
public void run() {
while (true) {
//这个内部类也是类,所以要用在上一级的类定义锁!
synchronized (Test11.class) {
if (num < 10)
break;
System.out.println(this.getName() + "礼品还剩下" + num-- + "个");
}
}
}
}.start();
new Thread("发放者2号") {
@Override
public void run() {
while (true) {
synchronized (Test11.class) {
if (num < 10)
break;
System.out.println(this.getName() + "礼品还剩下" + num-- + "个");
}
}
}
}.start();
}
} |
|