1.如果我们有两个使用ConcurrentLinkedQueue的线程,其中一个线程将数据插入列表,另一个线程同时访问数据。
事件序列的示例如下所示。
Eg1
Puts1
consume1
Puts2
consumes
Puts3
Consume3
Eg2
puts1
puts2
puts3
consume1
consume2
consume3
2.两个线程之间的操作应该同步吗?为什么呢?
答案 0 :(得分:0)
ConcurrentLinkedList
是"线程安全"。这意味着,当您从不同的线程调用其方法时,该类的任何给定实例都不会做任何令人惊讶的事情。
不意味着当您有多个线程同时使用同一个列表对象时,您的程序将执行您期望的操作。
线程安全是不可编写的:也就是说,完全用线程安全的类构建程序不会使程序本身是线程安全的。如果程序的各种线程彼此协作,并且不会相互干扰,则程序只是线程安全的。