搜索

多线程 sleep函数 线程调度 产生丢包 优先级

gecimao 发表于 2019-07-28 21:18 | 查看: | 回复:

  现象:在程序运行中,发送数据端发送了5次数据,在别的机器上单线次都能显示,但是在多线次数据

  原因推测:在线和线处理时 由于频繁的sleep 切换线程,更新显示线程优先级不高,所以一直没有得到执行,于是后面到达的数据覆盖了之前的数据,更新显示次数减少

  问:如何解决?有没有能让线程暂停执行一段时间但是不会影响到别的线程的方法,目前情况看来sleep不可行。

  我收到消息 之后释放信号,让处理线程处理收到得数据,然后 接收线程继续接收

  所以多线程丢失数据得原因其实应该是处理显示数据得线程没有得到及时的调用,怀疑是优先级相关的问题

  我来答可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部建议看看线程池的工作原理方面的资料。这么多线程,无法达到同步,所以需要线程锁,而且需要异步通信,所以需要使用线程信号来达到你说的效果。phread_mutex_t //互斥锁pthread_cond_t //信号

  WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) 这个好象是Windows程序中类似于C中的main()一样,是windows程序的入口函数,可以看一下Windows程序设计这本书,至于下面这个try不知道。

  无论多快的频率收信号,也会有丢失的现象产生。应该做个无限循环,循环里检查信号。判断信号是可写,还是可读。如果是读状态,就收信号。

本文链接:http://olivierlutaud.net/diaoduxinxichi/872.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部