【发布时间】:2015-08-25 06:07:18
【问题描述】:
我有一个长度为 N 的 std::string,我想使用线程将长度为 K 的所有子字符串插入到 std::set 容器中。我应该使用多少个 std::thread 或 pthread_t 对象?
考虑 N = 500,000 和 K = 3。
【问题讨论】:
-
可能与您拥有的内核一样多...但是如果您滥用多线程,它实际上会减慢您的程序(在最好的情况下),所以我建议您要么学习很多,要么坚持只要您没有充分的理由使用线程,就可以使用单个线程。
-
如果你想要最佳效率,可能是1。
-
在写信给
std::set时,您打算使用什么锁定方法?你知道std::set不是线程安全的吗?您希望多久找到一次重复的子字符串? -
我的目标是找出重复字符串出现的次数,在多线程环境中,超过 100 个不同的随机字符串。 @ChrisDrew - 我不知道
std::set不是线程安全的。
标签: c++ multithreading c++11 pthreads stdthread