|
|
1
0
在回答问题的第二部分时,您说得很对,尽管.NET4.0中的并发集合实现试图实现无锁,但它们仍然位于非无锁内存分配子系统之上。 内存管理是所有无锁数据结构的祸根:下面是一个关于最新技术的演示: http://sysrun.haifa.il.ibm.com/hrl/ISMM2009/program.html#7
|
|
|
2
11
堆栈和队列在并发编程中非常有用,就像在顺序编程中一样。
新的
另外,我想指出一件事——你在第二段中有两个误解。链表对于可伸缩性来说并不是特别糟糕。内存分配可能需要定期进行(尽管有一些方法可以解决这个问题),但通常情况下,在可伸缩性方面,这比其他潜在问题付出的代价要小(这真的取决于场景……)还有,新的
|
|
3
3
我可以想象,基于链表的设计是为了使它无锁。它的可扩展性有什么问题,您还考虑了哪些其他选项? |
|
|
4
2
这里有一篇最近的博客文章,它精确地涵盖了您所关注的问题(使用ConcurrentBag和TPL的GC问题),建议了在现场发现和分析这个问题的方法(VS2010 Concurrency Visualizer)。部分解决方案建议使用服务器GC。 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
H3007 · 并发运行python子进程似乎不是并发的 1 年前 |
|
|
The Oddler · TVar会阻止读取直到更改吗? 1 年前 |
|
|
Wang Tuma · 使用信号量的c++并发问题:按顺序打印 1 年前 |
|
|
Marcel Batista · 在不同线程中更新密钥时的字典线程安全 2 年前 |
|
|
rico · 当volatile关键字真的是必要的? 2 年前 |