A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


public class testSync {
private int i;
public synchronized void setI(int i) {
  this.i = i;
}
public int getI() {
  return i;
}
}

若getI的实现改为如下,会不会相互block?

private static final Object o = new Object();
public int getI() {
synchronized(o) {
  return i;
}
}

2 个回复

倒序浏览
lz所说的相互block是指谁跟谁相互,setI(int i)跟getI() 吗,这两个方法都有自己的锁,各自实现自己的线程同步。不明白相互block是指什么啊,lz再说清楚些。
回复 使用道具 举报
加锁以后就不会出现了,如果不加锁,在一个等待释放资源,一个请求资源,并且相互制约的情况下,就会出现死锁现象,不加锁的话就要多注意一下,加锁的话,当执行完这个线程之后才会执行下一个,即每次只能有一个线程调用,就不会出现死锁的现象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马