【发布时间】:2009-06-15 02:29:37
【问题描述】:
我想知道使数据线程安全的“最佳”方法是什么。
具体来说,我需要保护一个跨多个线程的链表——一个线程可能会尝试从中读取数据,而另一个线程会从其中添加/删除数据,甚至释放整个列表。我一直在阅读有关锁的文章;它们似乎是最常用的方法,但显然它们可能会出现问题(死锁)。我还阅读了有关原子操作以及线程本地存储的信息。
在您看来,我最好的做法是什么?大多数程序员使用什么方法,出于什么原因?
【问题讨论】:
-
最佳方法取决于您使用的语言。例如,在 erlang 中,这不是问题
-
是的,erlang 的 intrinsically 消息传递(所以多处理是其中最甜蜜的东西)——在我的回答中,我勾勒了如何用其他语言构建快乐状态,例如蟒蛇。
标签: multithreading locking atomic