concurrency相关内容
假设我需要应用两个函数 f:String => A 和 g:A => B 到一个大文本文件中的每一行,最终创建一个 B 的列表。 由于文件较大, f 和 g 是昂贵的我想使处理并发。我可以使用“并行集合”并执行类似 io.Source.fromFile(“data.txt”)。getLines.toList.par.map(l => g(f(l)),但不会同时执行读取文件 f 和 g 。 >
..
我正在编写一个以.NET 4.5,Windows应用商店应用和Windows Phone 8为目标的可移植类库。我需要一个高效的内存缓存机制,所以我在考虑使用 ConcurrentDictionary ,但它不适用于WP8。 会有很多读取和相对较少的写入,所以理想情况下,支持从多个线程进行无锁读取,并由单个线程写入的集合。非通用 Hashtable 具有该属性,根据MSDN ,
..
在 Java 中,有线程安全版本 HashMap ,命名为 ConcurrentHashMap 和线程安全版本 TreeMap ,名称为 ConcurrentSkipListMap ,但 ConcurrentHashSet / HashSet.html“rel =”nofollow“> HashSet 。 通常有4种方法使用线程安全设置: 设置
..
基本上,我需要一个数据结构来存储服务器端的临时聊天消息。应该是: bounded:因为我不需要存储太多的邮件,客户端会发送请求,新消息每秒。我认为绑定大小应该是最大。在一秒内挂载并发请求。当缓冲区已满时,旧消息将被删除。 适合高并发访问:我不想使用数据结构synchronizedXXXX,因为在迭代期间,如果其他线程改变了数据结构,例如添加一个消息,它会抛出一个异常,所以我必须锁定整个
..
来自 #JCIP 的报价: “由于ConcurrentHashMap不能被锁定为独占访问,我们 不能使用客户端锁定创建新的原子操作,如 put-if-absent ,就像我们对Vector做的一样: 为什么我们不能获取锁定 线程安全(例如 Collections.synchronizedxxx 工厂返回的同步集合)的原子方法: 解决方案 为什么?因为实现不支持它。 直接从
..
我目前正在处理多线程应用程序,我偶尔会收到一个同时修改异常(平均大约每小时一次或两次,但以看似随机的间隔出现)。 错误的类本质上是一个地图的包装器 - 它扩展 LinkedHashMap (accessOrder设置为true)。该类有以下几种方法: 同步集(SomeKey键,SomeValue val) set方法将键/值对添加到内部映射,并受synchronize
..
我有一个对象,它是一个单例。此对象声明: 列表 players = new ArrayList(); 同样的对象也为这个arrayList指定了4个操作: public List getPlayers(){ return player; } //此方法的结果可以在另一个对象中用作迭代器(或者可以通过索引访问)
..
有没有办法创建一个线程安全的实现 Map ,维护它的条目按值排序?我知道我可以创建一个线程安全映射像这样 ConcurrentMap& ; String,Double> rankings = new ConcurrentHashMap(); 然后,我可以通过将值传递给像这样的实用程序方法, / p> public static
..
我正在尝试为多线程架构创建一个并发的LinkedHashMap。 如果我使用 Collections#synchronizedMap(),我必须使用同步块进行迭代。 如果我使用 ConcurrentSkipListMap 有任何方法来实现 Comparator 以存储在链接列表或队列中的顺序存储。 我想使用java的内置而不是 编辑: 在此并发 LinkedHashM
..
我看到 BlockingQueue 的这些实现,并且无法了解它们之间的差异。我的结论到目前为止: 我不需要 SynchronousQueue LinkedBlockingQueue 确保FIFO 必须使用参数true创建,以使其成为FIFO SynchronousQueue 此实现的性能是否优于 LinkedBlockingQueue ? 为了更复杂...为什么 Executor
..
我刚看到这个Java 6 API的数据结构,我很好奇什么时候它是一个有用的资源。我正在研究scjp考试,我看不到它覆盖在凯西·塞拉利的书,即使我看到模拟考试的问题,提及它。 解决方案 ConcurrentSkipListSet 和 ConcurrentSkipListMap 在需要一个将由多个线程访问的排序容器时非常有用。这些基本上是用于并发代码的TreeMap和TreeSet的等价物。
..
之后,像 Hashtable 和向量之后,当收集同步包装器出现时,我认为同步将更有效地处理。现在我查看了代码,我很惊讶,它真的只是包装集合与同步块。 为什么 ReadWriteLock 不包括在集合中的SynchronizedMap中?是否有一些效率考虑,不值得吗? 解决方案 读写锁是性能优化的一部分,意味着它可以在某些情况下允许更大的并发。必要条件是,它们应用于大多数时间但未修改的
..
我想知道是否有任何“简单”的方法来安全地更新不可变的scala集合。考虑下面的代码: class a { private var x = Map [Int,Int]() def update(p:(Int,Int)){x = x +(p)} } 这段代码不是线程安全的,正确吗?我的意思是,如果我们有两个线程调用update方法,让我们说x是map包含{1 =>
..
我正在阅读关于Java中的并发性的官方Oracle文档,我想知道 c> c> c>返回的之间的区别可能是什么? public static集合 synchronizedCollection(Collection c); 并使用例如 code> ConcurrentHashMap 。我假设在 HashMap 上使用 synchronize
..
也许这是一个愚蠢的问题,但我似乎找不到一个明显的答案。 我需要一个并发的FIFO队列,只包含唯一的值。尝试添加已存在于队列中的值将忽略该值。其中,如果不是为了线程安全将是微不足道的。在Java中有一个数据结构,或者是在具有这种行为的网络上的代码snipit? 解决方案 如果你想要更好的并发比完全同步,有一种方式我知道做,使用ConcurrentHashMap作为背景图。以下是仅草图。
..
HashSet基于HashMap。 如果我们看一下 HashSet 在 HashMap 下管理。 c $ c>用作 HashMap 的键。 我们知道 HashMap 不是线程安全的。这就是为什么我们在Java中有 ConcurrentHashMap 。 基于这个,我很困惑,没有ConcurrentHashSet,应该基于 Concur
..
我有以下代码: private String toString(List aDrugStrengthList){ StringBuilder str = new StringBuilder(); for(DrugStrength aDrugStrength:aDrugStrengthList){ if(!aDrugStrength.isValidDru
..
我有一个GameScene(这里叫做ShooterScene),我退出到MainMenu。我使用精灵表,我加载在纹理缓存。有各种各样的动画(背景元素,敌人,球员等)。我有几个月的问题,其中有一个断言失败在“setTexture”方法的敌人。我通过在更换场景之前暂停共享CCDirector来解决这个问题。这具有停止动画的效果。然而我只是部分解决这个问题。游戏不会在Enemy setTexture上崩
..
我的iPad应用程式与XML资讯提供同步,在NSOperationQueue执行的NSOperation子类别中执行同步作业。当它解析feed时,它通过 performSelectorOnMainThread:withObject:waitUntilDone:回调到主线程,以更新UI的各个部分,计划下载等。相当贵由于同步正在进行,UI有时可能无法响应一秒或两秒。 为了使用户界面更具响应性,我
..
我可以在特定队列中发布通知,并在另一个队列中接收通知吗?我想使用通知来沟通不同的队列,但我不知道这是否安全... 解决方案 否。通知在与它们发送的相同的线程中传递,这将需要重新发送它以某种方式获得通知到您的线程。
..