测试环境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 是线程安全的吗的更多相关文章

  1. 关于List Map Set的线程安全的问题

    常见的ArrayList  LinkedList  HashMap TreeMap LinkedHashMap HashSet TreeSet LinkedHashSet 都是线程不安全的.如果要使用 ...

  2. List Map Set的线程安全

    常见的ArrayList  LinkedList  HashMap TreeMap LinkedHashMap HashSet TreeSet LinkedHashSet 都是线程不安全的.如果要使用 ...

  3. map线程

    来看看map线程到底是如何运行的 很早就知道一个map是一个线程,以后有可能改成一个map一个进程,那就先来看看一个map一个线程是如何运作的 其实刚开始整个服务器就是两个线程,但发现这样服务器支持的 ...

  4. 几种线程安全的Map解析

    转载自 面试必问-几种线程安全的Map解析 HashMap线程安全的吗? Java中平时用的最多的Map集合就是HashMap了,它是线程不安全的. 看下面两个场景: 1.当用在方法内的局部变量时,局 ...

  5. ThreadLocal实现方式&使用介绍—无锁化线程封闭

    原文出处: xieyu_zy 虽然现在可以说很多程序员会用ThreadLocal,但是我相信大多数程序员还不知道ThreadLocal,而使用ThreadLocal的程序员大多只是知道其然而不知其所以 ...

  6. Java 线程池

    系统启动一个线程的成本是比较高的,因为它涉及到与操作系统的交互,使用线程池的好处是提高性能,当系统中包含大量并发的线程时,会导致系统性能剧烈下降,甚至导致JVM崩溃,而线程池的最大线程数参数可以控制系 ...

  7. Java线程与并发库高级应用-线程范围内共享数据ThreadLocal类

    1.线程范围内共享变量 1.1 前奏: 使用一个Map来实现线程范围内共享变量 public class ThreadScopeShareData { static Map<Thread, In ...

  8. Java Map 简介

    AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, H ...

  9. Java Map 集合类简介

      作者:Jack Shirazi 了解最常用的集合类型之一 Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. 本文相关下载: · Jack 的 HashMap 测试 · Oracle ...

随机推荐

  1. NOIP“对偶”题:还教室

    先说一下思路: 方差可以经过恒等变形变成 x12 + x22 + ... + xn2 + 2a(x1 + x2 + ... + xn) + na2 所以维护平方和.连续和即可 平均数我就不再推了…… ...

  2. 28 GroupSock(NetAddress)——live555源码阅读(四)网络

    28 GroupSock(NetAddress)——live555源码阅读(四)网络 28 GroupSock(NetAddress)——live555源码阅读(四)网络 简介 1) NetAddre ...

  3. 如何给ZenCart网站livezilla客服系统?

    大致步骤: 1 去官网下载livezilla

  4. 微博地址url(id)与mid的相互转换 Java版

    原理: 新浪微博的URL都是如:http://weibo.com/2480531040/z8ElgBLeQ这样三部分. 第一部分(绿色部分)为新浪微博的域名,第二部分(红色部分)为博主Uid,第三部分 ...

  5. C#中使用ADOMD.NET查询多维数据集

    ADOMD.NET 是用于与 Microsoft SQL Server Analysis Services 进行通信的 Microsoft .NET Framework 数据访问接口. ADOMD.N ...

  6. 《转》---google面经

    我面的职位是Softwre Engineer, Tools and Infrastracture, 所以开发和测试的问题都会问到 Phone interview 1:白人小哥.给一个Interval的 ...

  7. Flatten 2D Vector

    Implement an iterator to flatten a 2d vector. For example, Given 2d vector = [ [1,2], [3], [4,5,6] ] ...

  8. 页面加载时执行JQ代码

    $(function () { //jq加载时执行的这里面是 $("#ss").append("<strong>这是新加的</strong>&qu ...

  9. poj 1094(拓扑排序)

    http://poj.org/problem?id=1094 题意:给你m个字母,有n个判断语句.求在哪个语句就可以判断出这个是不是一个环,或者在哪个语句可以判断出这些字母的排序规则,或者就是不能确定 ...

  10. Python QRCODE