linux关闭epoll线程,linux epoll 线程池

怎么容易出错呢。才用的话建议用水平模式,一直提醒你接受,出错点在哪呢?######回复 @云松 : 呵呵,已经非常感谢您的回答了!######回复 @yushadow : 队列是我能想到的最简单的方式了,抱歉帮不了你了######回复 @云松 : 我实际写的时候是用协议的,每条数据的最前面4个字节用来表示后面数据的长度,我会先接收4个字节,然后判断长度,再接收后面的数据。 想到消息队列的方法了,但是觉得有些麻烦,就想问问有没有更好的办法######回复 @yushadow : 边缘模式倒是多了个判断数据是否读取完了的判断,这需要你自己的经验,很多老手都容易出错 。还有建议用一个自定的协议去保证数据的完全(我常用tlv格式),你在处理的时候根据length去截断或者合并流,至于你说接受和处理跟不上,我应该用个消息队列,然后队列的另一端用你的多个处理线程去处理######我用的是边缘模式!######接收的数据容易是错误的,后来写了一个接收数据不出错了,但是如果一直接收数据然后处理,处理速度可能跟不上接收的,所以经常会就堵死了,程序就卡在那不动了。######我用的是边缘模式!######你得用epoll + 线程池######不太会写线程池,您那有线程池实例吗?之前有用过apache apr库的线程池,可能不太会用的关系吧,还是不行啊!######

epoll并不负责数据的接收,只负责套接字存活,是否有数据的检测

接收数据出错,可能是你读写套接字数据时没处理好

epoll是Linux下进行并发tcp服务器编程的首选,比select, pselect, poll好多了 ######这是我提的另一个问题,这里有源码,当然,这只是一个测试的代码,真用的时候会对接收的内容进行处理。http://www.oschina.net/question/1249718_126025######你说的这些我都知道啊,可是同样的接收函数,用多线程并发就没问题,改成epoll就不行了,不知道为什么。######nio######linux C######C不懂 ,不过 nginx不是有 源码吗 ?搞下来研究一下。

######

去看 ACE ######

erlang,无限的new新进程

内存足够大,erlang就跟的进来.1百万是没啥问题.不知道你要满足多少,再不多就分布式,不过估计网卡受不了 ######我用linux C呢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值