两个线程让我们假设t1和t2都试图同时在copyOnWriteArrayList中执行更新操作......那么哪个线程更改将首先复制到原始列表中?
答案 0 :(得分:0)
在这种情况下,两个线程将同时尝试...获取CopyOnWriteArrayList
上的写锁。一个线程将立即获得锁。另一个线程将被阻塞,直到获得锁的线程将其释放为止。
如果两个线程同时获得锁怎么办?
两个线程可以尝试同时获得锁。但是,只有一个线程会立即获得锁。另一个将被阻止。这是锁的基本不变。用于获取和释放锁的指令序列...最终使CPU硬件保证不会违反不变式。