//上游调用到这里起线程
void DataCenter::start()
{auto dataMap = getData();vector<boost::thread> ths;for (const auto& item : dataMap ){ths.push_back(boost::thread(boost::bind(&DataCenter::doCompose, this, item.second)));}for (vector<boost::thread>::iterator it=ths.begin();it!=ths.end() ; ++it){if (it->joinable()){it->join(); //doCompose里面访问map冲突卡住还是这么的,这里一直等待...}}//boost::thread_group group;//for (const auto& item : dataMap )//{//    group.create_thread(boost::bind(&DataCenter::doCompose, this, item.second));//}//group.join_all();
}//200多行的大方法,有节省
void DataCenter::doCompose(const map<string, map<string, vector<int64_t> > >& data)
{//....//因为这里没有加锁,偶发冲突,线程可能卡住了。//并没有引起整个程序的崩溃,被误为处理得慢了。   WriteLock wLock(m_lockDataMap);m_dataMap[key] = dt;//....
}

结论

没有写程序单独验证。只是项目中遇到了,对一个公共成员m_dataMap加下写锁就好了。

C++多线程卡死问题--访问冲突未必崩溃相关推荐

  1. linux多线程卡死或崩溃log所有堆栈

    多线程卡死或者崩溃的时候,bt直接显示的堆栈可能不是崩溃的那个,那么就 需要分析所有的堆栈,可以采用的方式就是把所有的堆栈log下来,这样可以使用文本分析器或者编写脚本去进行处理 log所有的堆栈的方 ...

  2. 移动硬盘打开后点击右键电脑就卡死,资源管理就崩溃

    移动硬盘打开后点击右键电脑就卡死,资源管理就崩溃,然后就只能重启电脑了,移动硬盘了可以打开,就是不能在里面点击右键,一点就卡死. 下一个DiskGenius扫一下硬盘坏道并修复,是否还会出现上述问题 ...

  3. python 多线程卡死跳出_解决python线程卡死的问题

    1. top命令和日志方式判定卡死的位置 python代码忽然卡死,日志不输出,通过如下方式可以确定线程确实已经死掉了: # top 命令 top命令可以看到机器上所有线程的执行情况,%CPU和%ME ...

  4. 力科示波器重装系统教程 LECROY示波器(型号wave runner 640Zi)重装操作系统教程 力科示波器卡死/死机/系统崩溃 重装系统

    示波器品牌LECROY型号waverunner 640Zi重装系统教程,原来系统是Windows7 64位英文版(legacy+mbr方式启动) U盘做成PE启动盘.PE要做成与原装的win7系统相同 ...

  5. c++ unordered_map在多线程下只插入会崩溃

    这么说吧,所有的STL都不是线程安全的.使用时一定要小心,到时候崩溃的时候找bug都找不出来. std::unordered_map<Key, Value>是一个无法保证线程安全的数据结构 ...

  6. linux 显卡 卡死,linux服务器显卡崩溃解决方案

    在登录界面出现分辨率特别大,整个图形界面特别大,并且怎么也登录不上去的情况时 对于这种情况,一般就是显卡驱动崩了的原因,所以我们可以首先检查显卡驱动是否有问题 nvidia -smi 如果出现说驱动链 ...

  7. wxPython多线程界面卡死或在不同平台崩溃问题

    一.测试程序界面 二.不使用多线程代码如下(当点击开启日志的时候,直接导致界面卡死) #coding:utf-8 import sys import threading import time imp ...

  8. 使用windbg抓取崩溃文件和分析的过程

    在软件编程中,崩溃的场景比较常见的.且说微软技术再牛X,也是会出现崩溃的场景.网上有一段Win98当着比尔盖茨蓝屏的视频非常有意思. (转载请指明出于breaksoftware的csdn博客)     ...

  9. 多线程爬取百度关键字结果,并获取真实url

    项目目的:练习 项目要求:根据给定的关键字,检索百度的结果,将结果保存到文件中 遇到问题: 1.python  list取值问题,有些看不清晰的,用for index, item in enumera ...

  10. 易语言使用线程时钟后MYSQL_易语言多线程时钟周期 易语言三个时钟同时运行

    易语言代码,时钟1.时钟周期=1000是什么意思? 时钟周期事件每秒执行一次:1000=1秒,10000=10秒,依此类推.时钟停止是时钟1.时钟周期=0,而不是时钟1.禁用=真.时钟是计时器的意识. ...

最新文章

  1. Gson:我爸是 Google
  2. 工作中 99% 能用到的 Git 命令
  3. java华农组合模式,华农《数据库应用》往年考试例卷
  4. SystemTap工具的使用基础
  5. 你必须知道的CSS盒模型,顺利通过阿里面试
  6. oauth2 access_denied 不允许访问_OAuth 2 是什么-入门介绍
  7. 一个多线程练习,为什么直接运行和debug结果不一样
  8. es6语法([...arr], set/map数据结构,数组扩展,箭头函数等)
  9. IDEA 实用小技巧:万能的临时文件
  10. [编程开发工具-7]:四款功能强大的代码比较工具:Araxis Merge、Beyond compare、DiffMerge、WinMerge
  11. win10右键一直转圈_win10投屏不能使用的解决办法
  12. ERP原理与应用教程-第一章
  13. JavaScript正则表达式大全
  14. 解读联想重组:终于裁员了
  15. idea与电脑常用的快捷键冲突 解决办法
  16. php5市场占有率,javascript,php_目前国内浏览器的市场占有率?,javascript,php,html,html5,css - phpStudy...
  17. 上网日志留存_中国移动5G上网日志留存系统招标:最高投标总限价10亿元
  18. 开发APP的java工具_app傻瓜式开发工具_app开发工具
  19. 生成彩色二维码(渐变色、插入图片和文字)
  20. 微信小程序:王者战力查询改名工具箱小程序源码

热门文章

  1. ubuntu GStreamer + QT多媒体播放器开发(三)
  2. fatal: unable to auto-detect email address (got ‘...@...(none)‘)
  3. linux上启动eureka集群服务,SpringCloud@Docker系列: 运行Eureka Server集群
  4. 关于将驱动整合至ESXi镜像过程中的一些小坑
  5. 文本框内容改变的绑定事件
  6. 揭秘微信红包:架构、抢红包算法、高并发和降级方案
  7. CSDN的C1-见习工程师能力认证相关知识(框架)
  8. 微信缓存dat怎么转图片_PC微信dat文件如何转换为图片?
  9. word中无法输入中文
  10. Lftp 支持大文件,断点续传