Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的优化线程安全列表_Java_Multithreading_List_Locking - Fatal编程技术网

java中的优化线程安全列表

java中的优化线程安全列表,java,multithreading,list,locking,Java,Multithreading,List,Locking,哪些列表实现是线程安全的和性能良好的 所谓性能,我的意思是,我有一个具有多读访问权限和少写访问权限的列表。 所以我需要一个使用ReadWriteLock的列表实现 读写锁:读锁可以由多个用户同时持有 读线程,只要没有写线程。写入锁被禁用 独家的 哪些是线程安全且性能良好的列表实现 CopyOnWriteArrayList和Vector是List的线程安全实现 在这两种情况中,CopyOnWriteArrayList被认为是性能最好的,因为在大多数情况下,读访问都是通过很少的写操作完成的。在内部

哪些列表实现是线程安全的和性能良好的

所谓性能,我的意思是,我有一个具有多读访问权限和少写访问权限的列表。 所以我需要一个使用ReadWriteLock的列表实现

读写锁:读锁可以由多个用户同时持有 读线程,只要没有写线程。写入锁被禁用 独家的


哪些是线程安全且性能良好的列表实现

CopyOnWriteArrayListVector是List的线程安全实现

在这两种情况中,CopyOnWriteArrayList被认为是性能最好的,因为在大多数情况下,读访问都是通过很少的写操作完成的。在内部,它还使用ReentrantLock


注意:-在CopyOnWriteArrayList的情况下,所有可变操作(添加、设置等)都是通过制作基础数组的新副本来实现的,这就是为什么只有在多个读访问和很少的写访问的情况下才应该使用它的原因

哪些是线程安全且性能良好的列表实现

CopyOnWriteArrayListVector是List的线程安全实现

在这两种情况中,CopyOnWriteArrayList被认为是性能最好的,因为在大多数情况下,读访问都是通过很少的写操作完成的。在内部,它还使用ReentrantLock


注意:-在CopyOnWriteArrayList的情况下,所有可变操作(添加、设置等)都是通过制作基础数组的新副本来实现的,这就是为什么只有在多个读访问和很少的写访问的情况下才应该使用它的原因

如果您需要少量的写访问权限和大量的读访问权限,那么我建议您。这很昂贵,因为每次更改都会导致创建新的列表对象。但是,如果您的列表不是很大,并且您的主要关注点是读取,那么这可能是最好的解决方案。

如果您需要少量的写入访问和大量的读取访问,那么我建议您这样做。这很昂贵,因为每次更改都会导致创建新的列表对象。但是,如果您的列表不是很大,并且您的主要关注点是阅读,那么这可能是最好的解决方案。

查看中的收藏查看中的收藏