当前位置: 首页 > news >正文

常德网站建设wynet123最有效的app推广方式有哪些

常德网站建设wynet123,最有效的app推广方式有哪些,wordpress pageadmin,大连旅顺博物馆这是之前有做的一个可以接受用户传入任意类型的任务函数和任意参数,并且能拿到任务对应返回值的一个线程池框架,可以链接成动态库,用在相关项目里面。一共实现了两版,都是支持fixed和cached模式的,半同步半异步的&…

这是之前有做的一个可以接受用户传入任意类型的任务函数和任意参数,并且能拿到任务对应返回值的一个线程池框架,可以链接成动态库,用在相关项目里面。一共实现了两版,都是支持fixed和cached模式的,半同步半异步的(生产者消费者模型,异步 提交任务,获取任务结果,用future类达到异步)

今天就简单稍微做个小结。

 第一版

1、自己实现Any类,用来接收任意函数,和传递参数

2、怎么拿到返回值结果和结果类型?Result类里面 有Any类成员函数get 用来获取函数返回结果,Result构造函数里有Task类型对象,能接收到用户传入参数和类型,通过setvalue设置拿到返回值类型,通过getvalue获取task的返回值,最后返回一个Result类型打包的对象用来接收用户提交任务之后的返回值

3、用继承 重写虚函数的方式,定义Task任务类为抽象基类,用户设置自己的mtask类,自己实现里面run方法(线程怎么工作)

4、自己用mutex和condition_variable实现了信号量类

5、线程池析构,必须等所有线程把工作做完之后再析构

非必现的死锁问题:有时候线程资源释放回收之后会有线程没有回收干净

对于在阻塞队列里面没有拿到锁的休眠线程,和正在工作的线程没有问题;因为少考虑了一种情况,当threadpool要析构的时候,有线程执行完任务,又绕了一圈进到while,阻塞到拿锁那块,当threadpool析构执行到最后面释放锁的时候,因为用的都是一把锁,此时阻塞在锁的那个线程就拿到锁往下执行,但是会执行到notempty wait的地方,因为此时队列里线程还有他的存在,不空,但是析构函数已经走到最后面了,没人唤醒他,他就一直睡死在里面notempty wait这块了

问题就是notempty wait这块没人notify唤醒了,锁加双重判断,和把notify和获取锁代码位置换一下

还出现一个死锁问题:在linux平台下资源无法释放完全,因为linux下底层条件变量调用实现和windows不同,linux下condition_variable中notify阻塞了,查看源码发现在vs下条件变量析构会释放相关资源,而linux下的析构函数什么也没有做并没有释放资源,我们调用默认的析构,linux下肯定就会有问题
解决问题:在信号量类多加一个原子bool类型,构造的时候初始化false,重写析构将bool置为true。在信号量里post操作里加一层bool判断
分析定位问题:主要通过gdb attach到正在运行的进程,通过info threadsthread tidbt等命令查看各个线程的调用 堆栈信息,结合项目代码,定位到发生死锁的代码片段,分析死锁问题发生的原因

第二版

简化了代码引入future类和packaged_task打包 , packaged_task 调用get_future 获取 future , 然后通过 future 异步可以获取函数的返回值;使用可变参模板代替Any类

future->我们写的result类

http://www.ds6.com.cn/news/16951.html

相关文章:

  • 网站建设卖手机代码免费友情链接平台
  • 医院网站建设 价格低完整html网页代码案例
  • 购物网站难做吗免费个人网站建站
  • wordpress等模版比较网站关键词优化公司
  • 网站开发哪家公司好互联网营销策划方案
  • 招聘网站哪个平台比较好免费大数据查询平台
  • 成功的企业网站案例写软文平台
  • 个人 做自媒体 建网站免费域名注册
  • 企业信息系统架构seo网页优化工具
  • 小说网站源码带采集长沙正规关键词优化价格从优
  • 网站后台选择产品的推广及宣传思路
  • 专门做衣服特卖的网站有哪些东莞做网站哪家公司好
  • 可以做推广的网站南京百度seo排名优化
  • 兰溪自适应网站建设特点云南新闻最新消息今天
  • 网站备案怎么备案sem是指什么
  • 网站后台账户密码成都网站建设方案托管
  • 牛什么的网站建设营销工具
  • 网站建设项目详情app代理推广合作50元
  • b2c电子商务网站分类企业网站制作方案
  • 一键建网站网络推广用什么软件好
  • php网站开发第三章优化建议
  • 网站域名跳转怎么做百度云资源搜索引擎
  • 关于行业网站建设意见seo入门
  • 网站怎么做电脑系统下载东莞寮步最新通知
  • 网站建设的设计总结滕州今日头条新闻
  • 做网站需要哪些知识百度云搜索引擎入口
  • 荆州网站设计个人博客网页设计
  • 长沙网站seo优化排名阿里云域名注册官网
  • 网站建设中扒站为什么是违法的网站外链有多重要
  • 游戏推广合作seo咨询岳阳