map find 是线程安全的吗
测试环境gcc4.8.2
iterator find ( const key_type& k );
const_iterator find ( const key_type& k ) const;
Unordered_map有两个对应的find函数 我推断第二个是安全的,第一个经过实测不是线程安全
auto iter = _map.find(key)
在openmp多线程环境下出core,感谢glog的错误信息输出
*** Aborted at 1412933723 (unix time) try "date -d @1412933723" if you are using GNU date ***
PC: @ 0x8d1d65 std::equal_to<>::operator()()
*** SIGSEGV (@0x8) received by PID 3216 (TID 0x7f7c3902d700) from PID 8; stack trace: ***
@ 0x7f7c4b769150 (unknown)
@ 0x8d1d65 std::equal_to<>::operator()()
@ 0x8e231b std::__detail::_Equal_helper<>::_S_equals()
@ 0x8dbbb0 std::__detail::_Hashtable_base<>::_M_equals()
@ 0x8d1e63 std::_Hashtable<>::_M_find_before_node()
@ 0x8c432e std::_Hashtable<>::_M_find_node()
@ 0x8b2bca std::_Hashtable<>::find()
@ 0x89adcd std::unordered_map<>::find()
@ 0x87af21 gezi::LruMap<>::find()
@ 0x85c6ab gezi::TimerMap<>::count()
@ 0x7ee705 run()
@ 0x7f1893 _Z3runv._omp_fn.3
@ 0x7f7c4a65641a gomp_thread_start
@ 0x7f7c4b7611c1 start_thread
@ 0x7f7c49b6c0ad __clone
Segmentation fault
由于我可能需要修改iter->second,因此不能改用const_iterator
增加
iterator iter;
#pragma omp critical
iter = _map.find(key);
程序运行正常了
map find 是线程安全的吗的更多相关文章
- 关于List Map Set的线程安全的问题
常见的ArrayList LinkedList HashMap TreeMap LinkedHashMap HashSet TreeSet LinkedHashSet 都是线程不安全的.如果要使用 ...
- List Map Set的线程安全
常见的ArrayList LinkedList HashMap TreeMap LinkedHashMap HashSet TreeSet LinkedHashSet 都是线程不安全的.如果要使用 ...
- map线程
来看看map线程到底是如何运行的 很早就知道一个map是一个线程,以后有可能改成一个map一个进程,那就先来看看一个map一个线程是如何运作的 其实刚开始整个服务器就是两个线程,但发现这样服务器支持的 ...
- 几种线程安全的Map解析
转载自 面试必问-几种线程安全的Map解析 HashMap线程安全的吗? Java中平时用的最多的Map集合就是HashMap了,它是线程不安全的. 看下面两个场景: 1.当用在方法内的局部变量时,局 ...
- ThreadLocal实现方式&使用介绍—无锁化线程封闭
原文出处: xieyu_zy 虽然现在可以说很多程序员会用ThreadLocal,但是我相信大多数程序员还不知道ThreadLocal,而使用ThreadLocal的程序员大多只是知道其然而不知其所以 ...
- Java 线程池
系统启动一个线程的成本是比较高的,因为它涉及到与操作系统的交互,使用线程池的好处是提高性能,当系统中包含大量并发的线程时,会导致系统性能剧烈下降,甚至导致JVM崩溃,而线程池的最大线程数参数可以控制系 ...
- Java线程与并发库高级应用-线程范围内共享数据ThreadLocal类
1.线程范围内共享变量 1.1 前奏: 使用一个Map来实现线程范围内共享变量 public class ThreadScopeShareData { static Map<Thread, In ...
- Java Map 简介
AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, H ...
- Java Map 集合类简介
作者:Jack Shirazi 了解最常用的集合类型之一 Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. 本文相关下载: · Jack 的 HashMap 测试 · Oracle ...
随机推荐
- Laravel 5.1 文档攻略 —— Eloquent:模型对象序列化
在写api的时候,数据一般是以json格式进行传输的,没有对象可以直接使用.这个时候,对数据的序列化转换就很重要,Eloquent提供了很方便的方法和约定,不仅可以转换,还可以控制里面的键值. 基本用 ...
- 跟着百度学PHP[4]-OOP面对对象编程-1-什么是面对对象编程
该阶段学习参考:http://www.cnblogs.com/xiaochaohuashengmi/archive/2010/09/10/1823042.html 面向对象编程(Object Orie ...
- 如何将代码托管到GitHub上
注册账号什么的直接省略吧...GitHub传送门:https://github.com/ 首先就是创建repository. 接着就是填写相关的信息了 点击Create repository,创建成功 ...
- C++关键字:mutable(转)
参考:http://blog.csdn.net/hxz_qlh/article/details/14475573 修饰成员变量,在const成员函数中可修改它,在C++中还从未用过这个关键字.
- centos: vmware 安装centos 7连不上网
在vmware上安装centos 7时,安装完成后无法连接网络,通过搜索查找原来是有线网卡没有激活,默认情况下centos和redhat都不启用有线网卡,只能手动开启或者安装时直接启用. 1.进入命令 ...
- Android 趣味应用—— 短信编辑器
修改短信数据库,从而生成任意手机号发送的短信. AndroidManifest.xml <?xml version="1.0" encoding="utf-8&qu ...
- 【Eclipse】eclipse che 协作开发
http://www.eclipse.org/che/ http://blog.csdn.net/ccfeng2008/article/details/50881024 http://www.osch ...
- 【架构】MQTT/XMPP/GCM 等参考资料
https://www.zhihu.com/question/29138530 https://segmentfault.com/q/1010000002598843/a-10200000026014 ...
- Function接口 – Java8中java.util.function包下的函数式接口
Introduction to Functional Interfaces – A concept recreated in Java 8 Any java developer around the ...
- android气泡消息提醒布局
无论是anroid还是ios,气泡消息提醒再正常不过了.然而要定义一个气泡消息提醒确要费一番周折.下面记录下气泡提醒布局. 定义气泡背景shape_unread_message_bg.xml < ...