两个线程在CopyOnWriteArrayList中更新

时间:2019-01-24 07:16:50

标签: multithreading copyonwritearraylist

两个线程让我们假设t1和t2都试图同时在copyOnWriteArrayList中执行更新操作......那么哪个线程更改将首先复制到原始列表中?

1 个答案:

答案 0 :(得分:0)

在这种情况下,两个线程将同时尝试...获取CopyOnWriteArrayList上的写锁。一个线程将立即获得锁。另一个线程将被阻塞,直到获得锁的线程将其释放为止。

  

如果两个线程同时获得锁怎么办?

两个线程可以尝试同时获得锁。但是,只有一个线程会立即获得锁。另一个将被阻止。这是锁的基本不变。用于获取和释放锁的指令序列...最终使CPU硬件保证不会违反不变式。