1
1
并行访问同一数据结构的问题是双重的。首先,我们需要序列化并行更新。@蒂姆对此给出了全面的回答。第二,如果有很多读者,我们可以让他们阅读与写作并行。在这种情况下,不变性发挥了作用。没有它,作家只能等待读者完成。 |
2
1
没有一种真正的“功能性”方法可以让数据结构由多个线程更新。事实上,函数式编程在多线程环境中如此出色的一个原因是没有任何这样的共享数据结构。 然而,在现实世界中,这个问题经常出现,因此您需要某种方法来序列化对共享数据结构的访问。最简陋的方法就是在整个代码上加一个大锁,只允许一个线程同时运行(例如使用互斥锁)。有了巧妙的设计,这可以使合理的效率,但它可能很难得到正确的和复杂的维护。
|
3
0
https://typelevel.org/cats-effect/concurrency/ref.html 但它是原子引用实现,或者写一些java.util.concurent文件.ConcurentHashMap包装器 |
davidzxc574 · 将字符串缩放为字符 2 年前 |
yic_l · 什么是“!”在这个函数中是什么意思? 2 年前 |
Jelly · Scala:用于理解递归未来 2 年前 |
bbgghh · 在scala中连接两个列表时如何处理不匹配的键 2 年前 |
Iheb Mar · 卡夫卡制作人/消费者粉碎每一秒的API调用 2 年前 |
B. Bal · 在Scala中重用类成员 2 年前 |