1.CopyOnWirteArrayList
适用于写少读多的并发场景
2.ReadWriteLock
即为读写锁,要求写与写之间互斥,读与写之间互斥,读与读之间可以并发执行,在读多写少的情况下可以提高效率。
允许多个线程同时读共享变量;
只允许一个线程写共享变量;
如果一个写线程正在执行写操作,此时禁止读线程读共享变量;
3.ConcurrentHashMap是同步的HashMap,
读写都加锁
4.volatile
只保证多线程操作的可见性,不保证原子性
例题:下列关于Java并发的说法中正确的是()
A.CopyOnwriteArrayList适用于写多读少的并发场景
B.ReadWirteLock适用于读多写少的并发场景
C.ConcurrentHashMap的写操作不需要加锁,读操作需要加锁
D.只要在定义int类型的成员变量i的时候加上volatile关键字,那么多线程并发执行i++这样的操作的时候就是线程安全的了。