2019独角兽企业重金招聘Python工程师标准>>>

boost::asio::io_service 的本质是一个消费者模型 多线程环境下 效率测试

空转的话效率大概是150W QPS,  模拟find操作的话是80W QPS,


std::map<int, int> _x;
int QPS_WRITE = 0;
io_service io;
int main(int argc, char* argv[])
{for (int i = 0; i < 10000; i++){_x[i] = i;}for (int i = 0; i < 50; i++){std::thread t([&](){while (true){this_thread::sleep_for(std::chrono::nanoseconds(1));for (int i = 0; i < 16; i++)io.post([&](){++QPS_WRITE;for (int ii = 0; ii < 10; ii++)auto x = _x.find(ii);});}});t.detach();}std::thread t([&](){while (true){this_thread::sleep_for(std::chrono::seconds(1));cout << QPS_WRITE << endl;QPS_WRITE = 0;}});t.detach();io_service::work work(io);io.run();::system("pause");return 0;
}

转载于:https://my.oschina.net/kkkkkkkkkkkkk/blog/1936395

io_service线程安全队列效率相关推荐

  1. 【Python爬虫学习笔记11】Queue线程安全队列和GIL全局解释器锁

    Queue线程安全队列 在Python多线程编程中,虽然threading模块为我们提供了Lock类和Condition类借助锁机制来处理线程并发执行,但在实际开发中使用加锁和释放锁仍是一个经常性的且 ...

  2. python多线程队列处理_Python线程和队列使用的一点思考

    Python线程和队列使用的一点思考 1. 斗哥采访环节请问为什么要使用线程? 答:为了提高程序速度,代码效率呀. 请问为什么要使用队列? 答:个人认为队列可以保证线程安全,实现线程间的同步,比较稳. ...

  3. Linux系统编程---17(条件变量及其函数,生产者消费者条件变量模型,生产者与消费者模型(线程安全队列),条件变量优点,信号量及其主要函数,信号量与条件变量的区别,)

    条件变量 条件变量本身不是锁!但它也可以造成线程阻塞.通常与互斥锁配合使用.给多线程提供一个会合的场所. 主要应用函数: pthread_cond_init 函数 pthread_cond_destr ...

  4. python多线程文件的数据续传_python38 1.线程一堆队列 2.事件Event 3.协程 4.断点续传...

    复习 1.GIL锁 2.如何避免GIL锁给程序带来的效率影响 3.与自定义锁的区别 4. 线程池进程池 5 同步 异步 6.异步回调 1.GIL锁 ​ 全局解释器锁, 用来锁住解释器的互斥锁 ​ 为啥 ...

  5. 【C++ 语言】线程安全队列 ( 条件变量 | 线程调度 )

    文章目录 I . 线程简单使用 II . 互斥锁 III . 条件变量 线程同步 IV . 完整代码示例 006_ThreadSafeQueue.h 006_ThreadSafeQueue.cpp S ...

  6. TensorFlowIO操作(一)----线程和队列

    线程和队列 在使用TensorFlow进行异步计算时,队列是一种强大的机制. 为了感受一下队列,让我们来看一个简单的例子.我们先创建一个"先入先出"的队列(FIFOQueue),并 ...

  7. python 测试 多线程 _thread和threading模块 线程同步,线程优先级队列

    文章目录 python 多线程简介 Python中使用线程的两种方式 1.函数式 示例 2.线程模块 示例 线程同步 示例 线程优先级队列( Queue)[暂时没用到,没仔细看] 示例 其他 thre ...

  8. java多线程 --ConcurrentLinkedQueue 非阻塞 线程安全队列

    ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部:当我们获取一个元素时,它会返回队列头 ...

  9. 秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据

    本文配套程序下载地址为:http://download.csdn.net/detail/morewindows/5136035 转载请标明出处,原文地址:http://blog.csdn.net/mo ...

  10. 记一次线上压测Dubbo线程池队列满的问题

    本文记录一次线上全链路压测出现的Dubbo线程池队列满的问题. 1 问题描述 线上做全链路压测,其中涉及三个系统,调用关系A->B->C,均是dubbo调用.压测的时候C出现CPU满导致服 ...

最新文章

  1. 【力扣网练习题】有效的括号
  2. 设备树与驱动的关系_Linux I2C驱动竟然如此简单?手把手教你写i2c驱动
  3. java异常return笔试题_Java笔试面试总结—try、catch、finally语句中有return 的各类情况...
  4. 前端监控和前端埋点方案设计--摘抄
  5. 【光通信】用于可见光通信的OFDM发射机和接收机
  6. 激烈竞争的时代,哪些能力可以帮你脱颖而出?
  7. java main 参数传递参数_Java千问:Java语言如何给main方法传递参数?
  8. cocos2d-基本概念(4)-CallFunc Action
  9. 外媒:三星电子预计三季度营收创新高是得益于半导体业务
  10. NSUserDefaults 添加与删除
  11. eclipse中选中一个单词 其他相同的也被选中 怎么设置
  12. 斯坦福大学吴恩达 机器学习视频2014年
  13. 51单片机C语言编程100例pdf,51单片机C语言编程100例.doc
  14. 在线直播系统源码,数组遍历提取,订单效果
  15. MATLAB2010激活后无法打开MATLAB的解决方法
  16. 国科大UCAS大气物理期末复习笔记/大气物理基础入门
  17. 企业经营模拟(ERP沙盘、ERP电子沙盘)分析总结报告与心得分享
  18. 服务器维护封号,LOL客服的关于他们自己服务器问题导致账号被封号的问题
  19. yxylxt的python容器
  20. oracle错误编号06512,一个得到输入汉字的拼音函数报ORA-06512 数字或值错误

热门文章

  1. PyTorch:全局函数
  2. 海量数据挖掘MMDS week7: 相似项的发现:面向高相似度的方法
  3. 编程之美读书笔记1.8 - 小飞的电梯调度算法
  4. 【Keras】使用数据生成器(data generators)解决训练数据内存问题
  5. 【数据结构笔记】归并排序(merge_sort)+ 堆排序 -- python2.7
  6. xml+css+sql+json+html+js格式化,JavaScript格式化json和xml的方法示例
  7. android 串口工具下载,SerialTool串口调试工具-SerialTool apkv1.2 android最新版_永辉资源网...
  8. Android Framework 全面分析 SystemServer
  9. L1-018 大笨钟 (10 分) — 团体程序设计天梯赛
  10. Android 自动轮播图+滑动效果