有人把这篇文章给我的注意,声称(我意译)的STL长期被误指整个C++标准库,而不是从SGI STL中采取的部分.
(...)它指的是"STL",尽管很少有人仍然使用STL(在SGI设计).
C++标准库的一部分基于STL的一部分,正是这些部分,许多人(包括几位作者和臭名昭着的错误记录的cplusplus.com)仍然称为"STL".但是,这是不准确的; 事实上,C++标准从未提及"STL",两者之间存在内容差异.
(...)"STL"很少用于指代恰好基于SGI STL的stdlib的位.人们认为这是整个标准库.它被放在简历上.这是误导.
我几乎不了解C++的历史,所以我不能判断文章的正确性.我应该避免使用术语STL吗?或者这是一个孤立的意见?
我正在开发一个多线程应用程序,每个线程将从一组地图和向量中读取(不会修改结构).任何人都可以建议,因为线程只是从这些结构中读取,是否有必要在读取这些结构的代码块周围实现可共享的互斥锁?
想知道我是否可以在这种情况下了解我应该做些什么.
假设我有4到8个线程,并且我有一个永远不会写入的值向量,只能由线程读取.
我可以选择为每个线程创建一个向量副本,然后在线程之间没有线程锁定,尝试访问共享副本.或者,我可以锁定向量的一个副本并使所有线程访问它.
与复制向量相比,线程锁的延迟是多少?向量必须有多大,才能使锁的开销比复制向量更快?