java多线程应用开启线程数和cpu关系

dsdddddddddddddddd 2013-03-18 12:06:34
开发好的java应用,里面有用到多线程处理任务。
这一点个人感觉有些迷惑
关于多线程,比如我一个线程池开启多少个是最佳呢
java应用的线程调度不是由jvm负责的吗?和操作系统没有关系吧?
开启多少个线程为什么和cpu个数相关呢?我看有资料说要开启cpu倍数最佳,不明白为什么
比我我的家用电脑双核四线程,部署应用的话开多少个线程最佳?
望高手释疑解惑,切勿说让我自己试验试验,只希望有人站在理论的高度给我解释下
...全文
980 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
想喝咖啡的貓 2013-03-18
  • 打赏
  • 举报
回复
如果500线程仍不能满足你的需求,那么换NIO或集群去吧。
龙四 2013-03-18
  • 打赏
  • 举报
回复
更多并发知识学习:并发编程网
龙四 2013-03-18
  • 打赏
  • 举报
回复
线程数=可用的CPU数/(1-阻塞系数) 阻塞系统在0到1之间 所谓阻塞系数就是发生的IO操作,如读文件,读socket流,读写数据库等占程序时间的比率。这个数值每个系统肯定不一样,可通过分析工具或java.lang.managementAPI来确定这个值,也可以做个估计,然后测试逐步往最佳值靠拢。如果线程不是瓶颈所在,那么大概估一个值就好了

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧