首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java多线程

java多线程
EN

Stack Overflow用户
提问于 2011-05-07 16:06:39
回答 2查看 810关注 0票数 0

我正在开发一个程序,需要产生线程的基础上,一些之间的到来。

  • I有一个控制类,它在每次“到达”时都生成一个新线程,这些线程被设置为在“持续时间”之后停止自己的线程。(在线程中本地计算)。
  • i使用ExecutorService threadExecutor =Executors.newFixedThreadPool( 250 )实现了一个ExecutorService;保存了250个线程的引用并能够在需要时停止所有线程。
  • 理论上是因为经过测试后,只生成了47个线程。

所以我的问题是:

  • ExecutorService有限制吗?我应该更改为chached吗?
  • 这是JVM的限制吗?
  • 如何通过这个限制并生成新的线程来保持JVM有一个最佳的实现方法?
  • 也有一种方法来检测我在JVM崩溃之前可以生成的线程数量吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-09 05:36:40

我没有彻底阅读您的代码,尽管我认为您以前生成的线程可能已经运行并停止了,因为每个调用都是相同的长度,生成新调用的速率是恒定的(取决于您的profile.getCallInterarrival();)。当您的程序第一次启动时,它会不断地生成新线程,直到1分钟后(60000),调用开始停止,系统将达到平衡,每一个新的调用创建,就会有一个呼叫死亡。

如果我的理论是正确的,您的profile.getCallInterarrival()将返回类似于1.33的内容。

票数 -1
EN

Stack Overflow用户

发布于 2011-05-07 16:14:50

你怎么知道只生了47个?如果您正在生成线程,为什么要使用执行器?

  • ExecutorService有限制吗?我应该换到聊天吗?

这个限制是由内存和操作系统决定的。没有固定的限制。

  • 这是JVM?

的限制吗?

不是

如何通过这个限制并生成保留"interarrival"?的新线程?

我不明白这个问题。

  • 有最好的方法来实现这一点吗?

我不明白你想做什么,所以很遗憾我无法回答。

  • 还有什么方法可以检测JVM崩溃前我可以生成的线程数?

否,因为可以创建的线程数可能会受到VM参数的影响。它还将依赖于操作系统、内存等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5922291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档