Chinaunix

标题: 网络编程一定要用到 epoll iocp 这样的吗? [打印本页]

作者: evaspring    时间: 2015-12-17 11:25
标题: 网络编程一定要用到 epoll iocp 这样的吗?
本帖最后由 evaspring 于 2015-12-17 11:25 编辑

如果我将 socket 放进多个线程中,每个线程管理一定数量(比如512)个连接,然后在线程运行的时候每次都遍历一下,这样的效率我感觉也不慢吧?

一个进程开4个线程 管理2000左右的连接,我觉得对一个普通的服务器来说已经足够了,大家觉得呢?


作者: __BlueGuy_    时间: 2015-12-17 11:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: hellioncu    时间: 2015-12-17 11:44
说了不算,实际跑了够了就行
作者: evaspring    时间: 2015-12-17 11:47
回复 3# hellioncu


    我其实想问的是这样的设计可行不,我单个进程就开4个线程,不用select epoll iocp ,就每次遍历所有的连接 recv send
作者: hellioncu    时间: 2015-12-17 12:32
evaspring 发表于 2015-12-17 11:47
回复 3# hellioncu


用总是能用的,只是这样轮询CPU会比较高,如果循环中加延时么响应可能不及时
作者: cokeboL    时间: 2015-12-17 14:17
来用golang,一个客户端开相应的goroutine,随便写,一般pc配置处理10k个在线都很easy
作者: evaspring    时间: 2015-12-17 14:49
回复 6# cokeboL


    我看到goroutine 就觉得坑多
作者: cokeboL    时间: 2015-12-17 14:49
回复 7# evaspring


    跟用c/c++相比,坑少得很。。
作者: yulihua49    时间: 2015-12-18 13:18
evaspring 发表于 2015-12-17 11:25
如果我将 socket 放进多个线程中,每个线程管理一定数量(比如512)个连接,然后在线程运行的时候每次都遍历一 ...

避免轮询,避免CPU消耗吧。
作者: lxyscls    时间: 2015-12-18 16:13
轮询一时爽,没包火葬场
作者: evaspring    时间: 2015-12-18 18:29
回复 10# lxyscls


    啥意思 有什么坑吗?
作者: lxyscls    时间: 2015-12-18 20:54
回复 11# evaspring


    没数据的时候CPU 100%,你说坑不坑?
    100%意味着同一核上的其他进程性能低下,可能也就是10%的性能
作者: yulihua49    时间: 2015-12-19 20:58
evaspring 发表于 2015-12-18 18:29
回复 10# lxyscls

不怕烧CPU?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2