【发布时间】:2012-11-20 12:26:21
【问题描述】:
本例中的对象是带有一些搜索方法的字典。仅读取操作。
【问题讨论】:
-
显而易见的问题:您的对象在没有锁的情况下是多线程读取安全的吗?尽管线程并发,但该问题的答案和您的问题可能是相同的。
-
简介看看!取决于您的“字典”的实现,但是一个没有特别考虑多线程访问的普通字典不会带来任何重大开销。不过要注意特殊的同步集合;它们可能包括一些锁定/释放/等待开销。
-
@WhozCraig:对于仅读取操作,大多数类型都是线程安全的(不能保证,但这似乎成立:)
-
@DavidRodríguez-dribeas 所有标准库容器对此是安全的,例如,只要保证不仅您正在阅读,而且没有其他人是 写作。当错误的项目不需要锁定时,通常不考虑容器是否可以写入到读取上下文之外的细节。对于这样一个微妙的例子,see this post
-
这不可能像其他“XYZ 是快还是慢”问题一样回答。对其进行分析并找出答案。如果您向我们提供了一些详细信息,我们可以给您一个猜测,但现在您什么也没给我们。
标签: c++ multithreading performance object boost-thread