社区
Linux/Unix社区
帖子详情
linux下多线程问题
sevenfish
2005-02-19 02:35:40
如何实现上万个线程用于tcp连接
...全文
225
12
打赏
收藏
linux下多线程问题
如何实现上万个线程用于tcp连接
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sevenfish
2005-03-14
打赏
举报
回复
其实我这个应用中,每个线程每隔8秒处理一下数据,处理时间很短,主要时间花在建立tcp连接和等待上了,所以开1万个线程是划不来的,才考虑线程池。
sevenfish
2005-03-08
打赏
举报
回复
现在在尝试线程池,那位高手能否指点一二
DanXer
2005-03-08
打赏
举报
回复
简单讲,没有任何一种巧妙的技术能够达到你的要求。
线程池只能加快每个用户的相应速度,而且并发数只能是很少数的(线程池里的线程一般不会开太多),如果你要达到上万用户并发。因为任何一个线程执行一条指令之后就要挨个把一万个线程都执行一条指令轮寻一遍,花在每两个线程环境(上下文)切换的时间要多于每一个线程执行的那条指令的执行时间。你的服务器会变得不可想象得慢,我有试过2000个线程就已经比单线程处理所有用户的请求时间慢了3-5倍。
还是用硬件解决吧,开一万个线程是非常stupid的。
tengulre
2005-02-23
打赏
举报
回复
是的,udp较好
yuanlei1978113
2005-02-23
打赏
举报
回复
为什么要用tcp,而不试试udp呢。
sevenfish
2005-02-23
打赏
举报
回复
做的是城市出租车辆监控,有上万辆车辆不停的向服务器发送信息,必须建立上万个tcp连接,每个连接用线程处理数据的发送
sharkhuang
2005-02-23
打赏
举报
回复
epoll
keard
2005-02-23
打赏
举报
回复
tcp也好udp也好,各有各的好,不存在哪个比较好的说法
一万辆车的接发送数据跑在一台机器,本身就不太现实,机器撑不住吧,
最好分成几个机器
nodummy
2005-02-19
打赏
举报
回复
Linux很久以前就支持thread了,老的Unix才是只有process没有thread的……不过以前的Linux Thread都是使用用户级实现的
Linux目前的thread已经是kernel支持的了,不再是用户空间的thread或者是LWP了……
目前实现的叫NTPL,是真正意义上的线程了。NTPL的目标就是取代用户空间的PTH的……
zeusnchen
2005-02-19
打赏
举报
回复
POSIX THREAD是用户级线程,所以切换开销不大
不过支持上晚个线程没有必要吧?
不知你的系统是不是要全国人民都一起上?
robinswan
2005-02-19
打赏
举报
回复
上万个线程?!Linux下面没有线程的概念吧,只有进程。
nodummy
2005-02-19
打赏
举报
回复
……上万的线程……
这个没有意义吧?Thread不是越多越好,到了那个时候Thread切换消耗在上下文转换上的时间就已经比你获得的性能要多得多了。
还不如用thread pool来得方便,只要一般来说thread pool这样的东西里面只要有2+CPU数量x2的线程来执行你的连接处理就可以了……
Linux
多线程
服务端编程
《
Linux
多线程
服务端编程:使用muduo C 网络库》样章.pdf
基于
linux
的socket多人聊天室程序,采用posix
多线程
控制技术
基于
linux
的socket多人聊天室程序,采用posix
多线程
控制技术。客户端和服务器采用协议机制通信,服务器端在用户上线和下线时及时更新在线人数,并打印上下线信息(用户名)。客户端登陆需要输入用户名,若用户名已...
多线程
编程指南
linux
多线程
编程指南
Qt
多线程
串口通信源码
采用Qt4.6.2编写的
linux
系统下的开源串口通信程序。使用开源的posix_qextserialport类
Linux
多线程
原理深剖
带你一命通关
Linux
多线程
原理 三十分钟手撕底层内涵
Linux/Unix社区
23,110
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章