synchronizedCollection
全部标签 .NET4.0引入了System.Collections.Concurrent命名空间:"TheSystem.Collections.Concurrentnamespaceprovidesseveralthread-safecollectionclassesthatshouldbeusedinplaceofthecorrespondingtypesintheSystem.CollectionsandSystem.Collections.Genericnamespaceswhenevermultiplethreadsareaccessingthecollectionconcurrentl
如果我有一个这样的同步集合Collectionc=Collections.synchronizedCollection(myCollection);synchronizedCollection的javadoc提到外部迭代必须像这样同步:synchronized(c){Iteratori=c.iterator();while(i.hasNext()){process(i.next());}}我可以假设c.toArray()是同步的,因此当方法执行时集合不会发生变化吗?或者我是否也需要同步它:synchronized(c){c.toArray();} 最佳答案
有一个内部类SynchronizedCollection-在java.util.Collections里面有两个构造函数。第一个获取集合,另一个获取集合和互斥锁。前构造函数检查参数是否为空。但后来不要!这是实现。SynchronizedCollection(Collectionc){if(c==null)thrownewNullPointerException();this.c=c;mutex=this;}SynchronizedCollection(Collectionc,Objectmutex){this.c=c;this.mutex=mutex;}通过这个实现,我可以通过将nul
如何SynchronizedCollection和System.Collections.Concurrent中的并发集合命名空间彼此不同,除了ConcurrentCollections是一个命名空间和SynchronizedCollection是一个类(class)?SynchronizedCollectionConcurrentCollections中的所有类都提供了线程安全的集合。我如何决定何时使用一个而不是另一个,为什么? 最佳答案 SynchronizedCollectionclass在.NET2.0中首先引入,以提供线程安
如何SynchronizedCollection和System.Collections.Concurrent中的并发集合命名空间彼此不同,除了ConcurrentCollections是一个命名空间和SynchronizedCollection是一个类(class)?SynchronizedCollectionConcurrentCollections中的所有类都提供了线程安全的集合。我如何决定何时使用一个而不是另一个,为什么? 最佳答案 SynchronizedCollectionclass在.NET2.0中首先引入,以提供线程安