社区
C#
帖子详情
一个CPU线程数的问题
musics52
2010-11-22 05:53:39
我遇到一个纠结问题,请高手解答:
C#程序,我需要开启N个线程,结果发现,线程数达到50程序就死机了(双核机器)。同样的程序,在另一台服务器上(8个cpu),可以加到200个线程,我把我电脑的一个cpu对这个进程禁用,结果只能加到25个线程,很明显是和cpu有关(一个cpu最多只能对一个进程开启25个线程吗?),但是我却不知道该如何解决。
请问有人知道这是怎么回事吗?能有办法解决吗?
我的需求是一个服务器能够同时连接5000+个远程客户端(长连接)
...全文
381
7
打赏
收藏
一个CPU线程数的问题
我遇到一个纠结问题,请高手解答: C#程序,我需要开启N个线程,结果发现,线程数达到50程序就死机了(双核机器)。同样的程序,在另一台服务器上(8个cpu),可以加到200个线程,我把我电脑的一个cpu对这个进程禁用,结果只能加到25个线程,很明显是和cpu有关(一个cpu最多只能对一个进程开启25个线程吗?),但是我却不知道该如何解决。 请问有人知道这是怎么回事吗?能有办法解决吗? 我的需求是一个服务器能够同时连接5000+个远程客户端(长连接)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
criedshy
2011-01-26
打赏
举报
回复
Ccr.Core.dll
是这个,网上有相关资料
criedshy
2011-01-26
打赏
举报
回复
系统开启的线程数有限制的
你可以考虑用微软机器人工作室出的ccr.code.dll,这个可以开启更多线程。
ttcchh2008
2011-01-26
打赏
举报
回复
采用线程池作吧。把相应的任务交给FrameWork去完成。
ThreadPool这个还是蛮适合你的情况的。
musics52
2010-11-22
打赏
举报
回复
[Quote=引用 3 楼 zenghd 的回复:]
System.Diagnostics.Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)1;
System.Diagnostics.Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)2;
http://msdn.microsoft.com/zh-tw/library/……
[/Quote]
我查了一下,这是处理器的位掩码,用来指定我的线程在哪个cpu上运行,但是我的问题是为什么我可创建的线程数与cpu数量直接线性相关呢?
ZengHD
2010-11-22
打赏
举报
回复
System.Diagnostics.Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)1;
System.Diagnostics.Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)2;
http://msdn.microsoft.com/zh-tw/library/system.diagnostics.process.processoraffinity%28VS.80%29.aspx
musics52
2010-11-22
打赏
举报
回复
知道怎么解决吗?
呵呵
devin_jia
2010-11-22
打赏
举报
回复
5000汗
线程
池的
一个
BUG导致
CPU
达到100%
本文讲述了ScheduledExecutorService
线程
池的
一个
BUG,当coreSize设置为0时,可能导致
CPU
使用率达到100%。原因是JDK 8中的getTask方法存在循环,当allowCoreThreadTimeOut为true且
线程
数
大于核心
线程
数
时,会持续循环,直到队列中有任务。在JDK 9中此
问题
得到修复。此外,文中还提到了另
一个
关于scheduleWithFixedDelay方法在大延迟时执行失败的BUG,并分析了其原因和修复方式。
刺激,
线程
池的
一个
BUG直接把
CPU
干到100%了。
文章讨论了
一个
关于ScheduledExecutorService
线程
池的BUG,该BUG可能导致
CPU
使用率飙升至100%,原因在于核心
线程
数
设置错误引发无限循环。同时提及了与之相关的其他JDKbug,如内存泄漏和ConcurrentHashMap的死循环
问题
。
android 程序
线程
数
,Android应用
线程
池最大
线程
数
量
面试中关于
线程
池大小的
问题
引发思考,Android应用通常被视为IO密集型,
线程
池大小推荐设置为2N+1,其中N为
CPU
核心
数
。文中提供了
一个
示例代码,展示如何初始化
线程
池,包括核心
线程
数
、最大
线程
数
、存活时间和拒绝策略等关键参
数
。
cpu
线程
_
CPU
突然飙升到300%,Dubbo活动
线程
数
直接飙到1000
本文详细讲述了新功能发布后,因
CPU
飙升和
线程
数
激增导致的系统故障。通过监控、日志分析、代码审查和
线程
堆栈dump,作者揭示了内存泄漏、死锁疑虑及
线程
池配置不当等
问题
,最后定位到
一个
分页查询接口的内存泄漏
问题
。
cpu
线程
_彻底领悟
CPU
个
数
、核
数
、
线程
数
以及与Java多
线程
的关系
本文详细解析了
CPU
的物理核心
数
、
线程
数
及其工作原理,区分了原生多核与封装多核的概念。原生多核提供独立的前端总线,避免性能冲突,而封装多核则存在资源争抢
问题
。通过Windows系统中的命令可以查看
CPU
的相关信息。此外,超
线程
技术使得
一个
核心能模拟多个
线程
,提升多任务处理能力。在Java多
线程
中,
线程
是调度的最小单位,可以在多核上并发运行,提高系统效率。
C#
111,129
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章