已知LinkedBlockingQueue<E>使用take和put的时候分别是用的两把锁,如果链中只剩下占位结点和另一个数据结点,这时候两个线程同时进行take和put操作会不会引发数据结点的线程安全问题,一个线程进行take操作的时候会对数据结点中的item属性进行操作,另一个线程进行put操作的时候会对数据节点的next属性进行操作,这样不会引发线程安全问题吗?
chat回答如下,但是我去看了一下源码好像没有他说的什么额外的保障机制,麻烦大佬给个解答
已知LinkedBlockingQueue<E>使用take和put的时候分别是用的两把锁,如果链中只剩下占位结点和另一个数据结点,这时候两个线程同时进行take和put操作会不会引发数据结点的线程安全问题,一个线程进行take操作的时候会对数据结点中的item属性进行操作,另一个线程进行put操作的时候会对数据节点的next属性进行操作,这样不会引发线程安全问题吗?
chat回答如下,但是我去看了一下源码好像没有他说的什么额外的保障机制,麻烦大佬给个解答