问题标签 [concurrency]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 这种检测心跳的方法是否线程安全且一致?
这个问题已经在两篇博文(http://dow.ngra.de/2008/10/27/when-systemcurrenttimemillis-is-too-slow/,http://dow.ngra.de/2008/10 /28/what-do-we-really-know-about-non-blocking-concurrency-in-java/),但我还没有听到明确的答案。如果我们有一个线程这样做:
以及许多运行以下命令的客户端:
它是线程安全的吗?
c# - 在多台 PC 上并行化我的 C# 程序的最简单方法是什么
我家里有很多不用的电脑。什么是我利用它们来并行化我的 C# 程序而几乎没有代码更改的最简单方法?
我正在尝试做的任务涉及遍历大量英语句子,数据集可以很容易地分成更小的块,在不同的机器上同时处理。
garbage-collection - 具有并发垃圾收集器的功能语言?
Microsoft 的新 F# 编程语言提供了函数式编程(一流的词法闭包和尾调用)与高效的并发垃圾收集器的强大组合,可以轻松利用多核。
OCaml、Haskell、Erlang 以及我所知道的所有免费 Lisp 和 Scheme 实现都没有并发 GC。Scala 和 Clojure 有一个并发 GC,但没有尾调用。
因此,似乎没有结合这些功能的开源编程语言。那是对的吗?
java - Handling a timed out FutureTask
Let's say I do something in Java like:
My question is does something hold onto RemoteResponse in the case where TimeoutException is thrown? Will it get garbage collected? Do I have to call the cancel() method on the task for that to happen?
database - Django中的原子操作?
我正在尝试为计数器实现(我认为是)一个非常简单的数据模型:
当有人通过时,它会查找与 visitType 和 visitDate 匹配的行;如果该行不存在,它将使用 counter=0 创建。
然后我们增加计数器并保存。
我担心的是,这个过程完全是一场竞赛。两个请求可以同时检查实体是否存在,并且它们都可以创建它。在读取计数器和保存结果之间,可能会出现另一个请求并增加它(导致计数丢失)。
到目前为止,我还没有真正找到解决这个问题的好方法,无论是在 Django 文档中还是在教程中(事实上,看起来教程的投票部分有一个竞争条件)。
我如何安全地做到这一点?
java - Java volatile 引用与 AtomicReference
volatile
对象引用和AtomicReference
我只使用get()
and set()
-methods from之间有什么区别AtomicReference
吗?
producer-consumer - 生产者完成后通知消费者
我正在从 ldap 读取大量数据,这些数据需要与数据库中的相应记录进行比较。为了尽量减少 SQL 查询的数量,我想将多个 ldap 记录批处理到一个查询中。
所有这一切都非常简单:一个产生 ldap 结果的线程,以及一个使用这些结果并运行 SQL 查询的线程。
问题是:如果 ldap 只返回 3 个结果并且buffer_size
是 5 个结果,它将永远阻塞。我意识到我可以将一些特殊的标记放入缓冲区中,例如None
, 或"EOF"
,但这似乎是一个糟糕的设计:“迭代直到你完成,哦,除非你看到这个特殊值,这意味着你也完成了”。
我想出了两个替代的想法。首先是有一个共享eof
变量,但我不知道如何正确同步它。
第二个是ProduceChunks(chunk_size)
为生产者提供一个方法,它会处理结果的批处理,但我不喜欢这样,因为它假设生产者知道如何最好地缓冲结果,而实际上,我认为是消费者的责任。
有没有人有任何指导?
.net - .NET 是否有与 Java 的 ConcurrentHashMap 等效的 Dictionary 实现?
回顾那些可能不知道 Java API 的 .NET 专家:
Java 中的ConcurrentHashMap具有用于常见 Map 修改操作的原子方法(即不需要外部锁定),例如:
它还允许在没有锁定的情况下对键集进行迭代(它在迭代开始时获取一个副本),并且get()
操作通常可以与调用交错put()
而不阻塞(它使用细粒度的锁条带IIRC)。
无论如何,我的问题是:.NET 是否有等效的 Dictionary 实现?
我想更一般地说,我很想知道 .NET 是否有一组更通用的线程安全集合库。或一般的并发实用程序 - 相当于Doug Lea的java.util.concurrent
库。
concurrency - 什么是记忆栅栏?
使用显式内存栅栏是什么意思?