锁定私有字段变量(而不是使用锁定对象)是安全/可接受的做法吗?这样,我可以有不同的锁用于不同的目的.示例如下:
class Test {
private Integer x = 0;
private Integer y = 0;
public void incrementX() {
synchronized(x) {
x++;
}
}
public void decrementX() {
synchronized(x) {
x++;
}
}
public void incrementY() {
synchronized(y) {
y++;
}
}
public void decrementY() {
synchronized(y) {
y++;
}
}
或者我应该为每个想要锁定的私人会员拥有一个锁定对象?例:
class Test {
private final Object xLock = new Object();
private final Object yLock = new Object();
private Integer x = 0;
private Integer y = 0;
...
}
或者我应该只有一个通用锁并将其用于需要锁定的所有私有变量?例:
class Test {
private final Object objLock = new Object();
private Integer x = 0;
private Integer y = 0;
...
}
版权声明:本文为weixin_39878646原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。