LINUX下线程处理问题

xengine-qyt 2016-06-07 03:28:18
转发数据的一个服务器,主要是转发视频数据,
现在有个问题,如果在转发一条视频数据的时候回开一个线程来转,这个时候每个一个线程CPU就占满一个 100%
不清楚哪些视频服务器是杂写的,比如我服务器是4核心的,那不是一个服务器就只能支持4个客户端使用了?怎么处理这种情况的?
...全文
292 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rangerlee 2016-07-07
  • 打赏
  • 举报
回复
这个完全就是IO密集型任务,采用异步IO即可,比如select,epoll等,多线程可能都不需要就可以满足
huazisgit 2016-06-17
  • 打赏
  • 举报
回复
第一:采用非阻塞模式 第二:select 或者epoll_wait的时候,设置一个较短的等待时间,如果将时间设置为NULL,即使只启用来1个线程,CPU占用率也很高。
Arnold9009 2016-06-08
  • 打赏
  • 举报
回复
适用非阻塞方式,通过select来选择可用的socket转发
常书 2016-06-08
  • 打赏
  • 举报
回复
适当使用select和sleep,不要一直在那循环

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧