我记得上课时 做的多线程卖票时 加上同步锁 安全不出问题 多个线程同时执行
今天我做类似的题得时候 怎么加上同步锁 就执行了一个线程 去掉同步锁就没事了但不安全
我想了半天没想通 代码如下
private static int num = 80;
private static Object obj = new Object();
// 重写run方法
public void run() {
synchronized (obj) {
while(num > 0){
System.out.println("编号为" + (num--) + "的同学被分到第" + Thread.currentThread().getName() + "组");
}
}
}
测试类代码如下
// 创建MyRunnable对象
MyRunnable mr = new MyRunnable();
// 把MyRunnable对象作为参数传递给Thread的构造方法
Thread t1 = new Thread(mr);
Thread t2 = new Thread(mr);
Thread t3 = new Thread(mr);
Thread t4 = new Thread(mr);
// 给线程设置名字
t1.setName("一");
t2.setName("二");
t3.setName("三");
t4.setName("四");
// 启动线程
t1.start();
t2.start();
t3.start();
t4.start();
}
|
|