社区
Linux/Unix社区
帖子详情
如果连接客户过多,线程池如何处理呢?
acqy
2004-02-27 03:12:36
服务器程序使用线程池,比如开始的时候派生1000个线程来处理客户请求,当有1001个客户都请求连接那应该怎么办?
...全文
186
9
打赏
收藏
如果连接客户过多,线程池如何处理呢?
服务器程序使用线程池,比如开始的时候派生1000个线程来处理客户请求,当有1001个客户都请求连接那应该怎么办?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
acqy
2004-09-08
打赏
举报
回复
感谢各位的回答!
今天就此结贴!
如果有兴趣的话,大家可以继续讨论。我会一直关心此贴的最新回复。
也可以直接和我联系:qingyang.chen@powerise.com.cn
truebjhz
2004-04-13
打赏
举报
回复
1 一个线程不一定对应一个连接
2 一个机器不可能建立那么多连接,实际应用中,甚至连1000个都不能。
有些服务器的设计确实是先创建一定数量的线程,而且可能线程数就定下来了。
这样做的好处是不用再为线程的创建和撤消已经相关资源的分派开销时间。
另外,一个连接是一个任务,而线程则是用来执行任务的资源。就进程和CPU的关系差不多。
任务的执行可以是分时的。就是说一个连接可以不是时时刻刻都有一个线程为他做处理的。
这样,第1001个连接到来时,只不过会导致系统的整体响应速度有所下降而已。
当然,如果实际应用不允许这样的情况发生,就只好把第1001个挂起了。
如果是集群,那么肯定有一个负载平衡的部分,直接把这个连接送到还有空线程的服务器上去。
机群技术俺不怎么懂,不敢胡说了:)
Kingxinyu
2004-04-13
打赏
举报
回复
mark
yyy159
2004-03-30
打赏
举报
回复
要用集群了,把连接改到那个特定的IP就该可以了
hmaple
2004-03-30
打赏
举报
回复
线程池不是这样用的。
线程的创建和销毁是极耗系统资源的。上千个线程争夺CPU时间,结果是所有的线程都没有时间。
即使有1000个客户请求,绝大多数应用中每个客户每秒钟交换消息的信息量是很少的。所以线程池的一个线程足以及时的响应几十或上百个服务请求。
线程池中的线程数目是不变的。每收到一个请求,就将它分配给一个线程来处理。线程太多了,会使整个系统性能下降,太少了,又不能充分利用CPU。所以线程数目和CPU数目,系统性能有关。
在我们的系统中,每秒钟要处理100多个呼叫,每个呼叫持续几分钟,用SUN的NETRA220,只需要7,8个线程组成的线程池就搞定了。
mechgoukiteng
2004-03-24
打赏
举报
回复
可以参考LVS的实现
不过1000万实连接实在太吓人了
neil78duan
2004-03-24
打赏
举报
回复
1000万,别开玩笑了,一台服务器肯定是不可能完成的.有这么强的网卡吗?有这么强的操作系统吗?
应该使用集群,负载均衡的办法
morebin
2004-03-24
打赏
举报
回复
服务器程序使用线程池,比如开始的时候派生1000个线程来处理客户请求,当有1001个客户都请求连接,那么这个客户只能等到下一个线程空闲时,来处理它。apache就这样做的,在listen的第二个参数里指定等待的连接的最大个数,如果超过这个数,客户的connect会失败。
littlegang
2004-03-24
打赏
举报
回复
线程池的出发点不是说增加连接的吞吐量,而是减少系统建立线程、撤销线程的开销
池内的线程是一直在的,通常是完成一项特定的任务,而这个任务常常是重复性较高的,
当工作完成后,这个线程就马上又可以进入空闲状态,为下一次工作服务
一个用户的连接,通常不是一个任务就完成的,也不大可能由一个线程从头到尾来负责(当然一般的应用中也可以这样做)
如果池内的线程确实不够用,也可以动态地变化池的大小,以容纳更多的工作线程
代码客:G-Socket(IOCP) 1.0 (Server/Client)例程源码+Server体验程序+强大的压力测试工具
(5)、内置
处理
线程,上层应用可不必自建
线程池
处理
数据,所有IO事件按顺序调用回调函数并可以在回调函数内直接
处理
数据,不必担心多线程造成的接收数据乱序的问题。 (6)、高效率的数据对应关联机制,在初次
连接
并...
一文弄懂
连接
池和
线程池
先启动若干数量的线程,并让这些线程都处于睡眠状态,当
客户
端有一个新请求时,就会唤醒
线程池
中的某一个睡眠线程,让它来
处理
客户
端的这个请求,当
处理
完这个请求后,线程又处于睡眠状态。 也许有人质疑:为什么要...
Qt高级系列之8:Qt多线程
线程池
数据同步机制及文件下载器项目实战
1.带领您深入学习QT5/C++:...Qt
线程池
技术、Qt数据库
连接
池、等。2.所有章节均有理论知识介绍、接口讲解、实例代码讲解,讲解过程中不断穿插老师在开发过程中遇到的问题及解决方法(可以下载所有的电子课件与源码)。
什么是
线程池
,如何使用
什么是
线程池
,如何使用,为什么要用,以下做个总结 1、什么是
线程池
:  java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建
线程池
多线程技术主要解决
处理
器...
【Linux】线程终结篇:
线程池
以及
线程池
的实现
线程
过多
会带来调度开销,进而影响缓存局部性和整体性能。而
线程池
维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在
处理
短时间任务时创建与销毁线程的代价。
线程池
不仅能够保证内核的充分利用,还...
Linux/Unix社区
23,118
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章