社区
C++ 语言
帖子详情
线程调度机制
malone1
2011-03-17 05:15:02
比如我现在有一个服务器的项目,主要工作是接收client请求,并读取server数据通过socket发送给client.可以通过线程池来处理。我创建线程池的时候创建20个线程来处理。但是当有大量client连接的时候,任务队列上已经有比较多的任务等待处理,这个时候我可能需要增加线程池线程的数量来提高处理能(需要计算和读取文件),但是需要增加多少线程呢?这个是否有什么方法可以确定。
做过大并发服务器的同志说说经验撒。你们现在用的服务器动态调整线程数量吗?机制是什么?谢谢各位
...全文
266
8
打赏
收藏
线程调度机制
比如我现在有一个服务器的项目,主要工作是接收client请求,并读取server数据通过socket发送给client.可以通过线程池来处理。我创建线程池的时候创建20个线程来处理。但是当有大量client连接的时候,任务队列上已经有比较多的任务等待处理,这个时候我可能需要增加线程池线程的数量来提高处理能(需要计算和读取文件),但是需要增加多少线程呢?这个是否有什么方法可以确定。 做过大并发服务器的同志说说经验撒。你们现在用的服务器动态调整线程数量吗?机制是什么?谢谢各位
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
太乙
2011-03-18
打赏
举报
回复
加大线程也不行的!!!!
毕竟机器的处理能力有限!!!!!!!!
线程数太大反而适得其反!!
加机器,加核吧!!!!!!!
malone1
2011-03-18
打赏
举报
回复
ccltiancai
2011-03-17
打赏
举报
回复
那就木办法了,你计算密集型的线程。。根据服务器配置适当加线程吧。。但是肯定也只能加到适量。。服务器上不去木办法啊= =
wbruce
2011-03-17
打赏
举报
回复
[Quote=引用 4 楼 ccltiancai 的回复:]
计算大,连接时间长的服务用per client per thread或者thread pool不是悲剧吗。。。你又不是人家apache做短链接的。。。
换高并发模型吧
iocp,epoll
[/Quote]
这里说的线程池是针对任务处理的,不是针对client的连接。
ccltiancai
2011-03-17
打赏
举报
回复
计算大,连接时间长的服务用per client per thread或者thread pool不是悲剧吗。。。你又不是人家apache做短链接的。。。
换高并发模型吧
iocp,epoll
wbruce
2011-03-17
打赏
举报
回复
之前做过类似的东西,但是我的线程处理的逻辑相对比较简单。
在1万个client连接的情况下,10线程去处理消息逻辑都没问题。
所以没有遇到楼主这样的麻烦,我觉得是不是应该看下瓶颈在哪里,
例如是否可以提高一下每个任务的处理效率。
bdmh
2011-03-17
打赏
举报
回复
没有定论,根据你服务器的承受能力,和运算效率以及客户端数量,测试一个值吧
Linux
线程
的
调度
机制
Linux
线程
的
调度
机制
在Linux中,
线程
是由进程来实现,
线程
就是轻量级进程( lightweight process ),因此在Linux中,
线程
的
调度
是按照进程的
调度
方式来进行
调度
的。Linux这样实现的
线程
的好处的之一是:
线程
调度
直接使用进程
调度
就可以了,没必要再搞一个进程内的
线程
调度
器。 在Linux中,
调度
器是基于
线程
的
调度
策略(scheduling policy)和静...
【老白学 Java】
线程
的
调度
机制
通过上篇文章的学习,现在可以创建自己的
线程
去执行任务了。老白在想一个问题:程序创建了多个
线程
后,怎样决定每个
线程
的执行顺序呢? 其实,Java 有一种专门管理
线程
的方式,就是接下来要讨论的
线程
调度
机制
。
线程
的
调度
机制
及
线程
同步问题
调度
机制
具体的
调度
实现分为操作系统和JVM 操作系统的
调度
机制
有多种,一般常见的有2种:时间片Unix和抢占式windows 所有的Java虚拟机都有一个
线程
调度
器,用来确定那个时刻运行那个
线程
。主要有两种
调度
模型:分时
调度
模型和抢占式
调度
模型 基于时间片轮转法的抢占式
调度
。
线程
调度
器会给高优先级有更多的运行机会,如果优先级相同则随机选中,执行时长到达时间片后从新进行
调度
线程
的
调度
不是跨平台的,它不仅取决于Java虚拟机,还依赖于操作系统。在某些操作系统中,即使运行中的
线程
没有遇到阻
python
线程
调度
机制
线程
调度
机制
python通过GIL来互斥不同
线程
对解释器的使用,也就是说同一时间只有一个
线程
访问python提供的API,在多核cpu中可以实现多
线程
的独立运行,但是由于GIL,使多核退化成单核。 python的
线程
和操作系统的
线程
调度
机制
一样,要解决两个问题: 在何时挂起当前
线程
,选择下...
Java
线程
的
调度
机制
是什么
有两种
调度
模型:分时
调度
模型和抢占式
调度
模型。1、分时
调度
模型是指让所有的
线程
轮流获得 cpu 的使用权,并且平均分配每个线 程占用的 CPU 的时间片。2、Java虚拟机采用抢占式
调度
模型,每个
线程
将由系统来分配执行时间,
线程
的切换不由
线程
本身来决定,系统优先让可运行池中优先级高的
线程
占用CPU,如果可运行池中的
线程
优先级 相同,那么就随机选择一个
线程
,使其占用 CPU。处于运行状态的
线程
会一直运行,直至它不得不放弃 CPU。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章