黑马程序员技术交流社区
标题:
多线程同一把锁的问题
[打印本页]
作者:
Mr_Unhappy
时间:
2014-9-24 16:00
标题:
多线程同一把锁的问题
package threadTest;
public class ThreadDemo {
public static void main(String[] args) {
MaiPiao t = new MaiPiao();
Thread first = new Thread(t, "one");
Thread secound = new Thread(t, "two");
first.start();
secound.start();
}
}
class MaiPiao implements Runnable{
private int piao = 100;
public void run() {
synchronized(new Object()){
while(piao>0){
System.out.println(Thread.currentThread().getName()+" is running"+piao--);
}
}
}
}
复制代码
此时两个线程用的不是同一把锁,因为每个线程运行 new object时,都会创建一个对象,所以每个线程都有自己的锁
此时纵使换成同一把锁,依然会出现错误,因为while循环在同步代码块之内,所以当一个线程进入同步代码块之后,就不会再出来...
以此警醒自己,考前复习
作者:
jtshawn
时间:
2014-9-24 17:21
路过赞一个!
作者:
Eagle
时间:
2014-9-24 19:43
break????
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2