【发布时间】:2014-09-30 05:06:53
【问题描述】:
以下并发锁的方法有什么区别?
public synchronized ArrayList<Player> getPlayers() {
return players;
}
public ArrayList<Player> getPlayers() {
synchronized(players) {
return players;
}
}
public ArrayList<Player> getPlayers() {
synchronized(GameHandler.class) {
return players;
}
}
我们如何决定在哪些场景中应该使用哪一个?
编辑:
我已经编辑了我的主题标题和帖子以证明这不是重复的。谢谢。
【问题讨论】:
-
没有区别,这三个方法在任何时候都只允许单个线程访问
players。 -
采用三种方式的意义何在?
-
您可以在这里得到答案:stackoverflow.com/questions/20906548/…
-
OK,这些方法的结果都是一样的。
-
如果您不认为这是重复的,请对其进行编辑以明确不同之处。然后它将进入重新打开审核队列。
标签: java multithreading