我有一个带有链表的简单类:
private final LinkedList<Object> list;
如果我有两种方法来操作这个列表:
public void m1(){ ... list.poll()...}
public void m2(){...list.clear)....}
如何确保线程安全?让两种方法都接收“同步”关键字就足够了吗,还是我需要放一个
synchronized(list){
System.out.println("locking on :" + lock);
}
围绕方法代码?
常识告诉我这是第二个,但我想要确认,或者更简单的方法来确保我的列表不会被弄乱。
PS:还是放在 CodeReview 中会更好?不知何故,在这里感觉更合适。
最佳答案
将您的列表传递给 public static <T> List<T> synchronizedList(List<T> list)
java.util.Collections
中的方法类来创建线程安全列表。
关于java - 如何线程安全地操作 Java 中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27838851/