首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写线程安全容器

编写线程安全容器
EN

Stack Overflow用户
提问于 2011-07-14 17:58:41
回答 4查看 539关注 0票数 3

有人能推荐一本关于如何编写线程安全容器的好书吗?

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-14 18:13:51

是一个STL实现,它提供了线程安全,你可能想看看它。

票数 0
EN

Stack Overflow用户

发布于 2011-07-14 18:32:14

线程安全容器是没有银弹

例如,无论您使用什么容器,此代码都不是线程安全的:

代码语言:javascript
复制
if (!container.has(value)) container.add(value);

也不是:

代码语言:javascript
复制
container[value] = container[value] + 42;

代码可以是线程安全的,但它需要的不仅仅是线程安全容器。

更糟糕的是:线程安全容器不会给你带来太多好处。它们可能对你在教科书中找到的简单案例有帮助,但在实际存在的复杂案例中,无论如何你都需要一个锁(参见上面的典型案例)。在这种情况下使用线程安全容器将是纯粹的开销。

看一看Java,因为它是从线程安全容器开始的。几年后,Java转向了线程不安全的容器,并弃用了旧的线程安全的容器。

所以我的建议是:不要寻找线程安全的容器。相反,会寻找一本好书《如何编写线程安全代码》。

更新澄清:我说的是标准容器,比如矢量、地图和字符串。

票数 3
EN

Stack Overflow用户

发布于 2011-07-14 18:03:47

1024cores.net上充斥着关于编写线程安全代码的好文章。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6691399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档