当前位置:编程学习 > JAVA >>

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

开发好的java应用,里面有用到多线程处理任务。
这一点个人感觉有些迷惑
关于多线程,比如我一个线程池开启多少个是最佳呢
java应用的线程调度不是由jvm负责的吗?和操作系统没有关系吧?
开启多少个线程为什么和cpu个数相关呢?我看有资料说要开启cpu倍数最佳,不明白为什么
比我我的家用电脑双核四线程,部署应用的话开多少个线程最佳?
望高手释疑解惑,切勿说让我自己试验试验,只希望有人站在理论的高度给我解释下 多线程 java jvm 任务 cpu --------------------编程问答-------------------- 线程数=可用的CPU数/(1-阻塞系数)

阻塞系统在0到1之间

所谓阻塞系数就是发生的IO操作,如读文件,读socket流,读写数据库等占程序时间的比率。这个数值每个系统肯定不一样,可通过分析工具或java.lang.managementAPI来确定这个值,也可以做个估计,然后测试逐步往最佳值靠拢。如果线程不是瓶颈所在,那么大概估一个值就好了 --------------------编程问答-------------------- 更多并发知识学习:并发编程网 --------------------编程问答-------------------- 如果500线程仍不能满足你的需求,那么换NIO或集群去吧。
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,