我有一个java的主要方法。我把java主线程睡了一段时间。为java主要方法执行创建了多少个线程?
public static void main(String[] args) {
Thread.sleep(10);
}
总,如何线程的数量很多会为Java主执行(包括后台程序线程)
我有一个java的主要方法。我把java主线程睡了一段时间。为java主要方法执行创建了多少个线程?
public static void main(String[] args) {
Thread.sleep(10);
}
总,如何线程的数量很多会为Java主执行(包括后台程序线程)
整整创建。
System.out.println(Thread.activeCount());
睡一个线程创建任何新主题:
可以通过添加一行检查
睡眠(long millis)来让当前正在执行的线程休眠 (暂停执行)为指定的 毫秒,取决于系统定时器 和调度程序的精确度和准确性。
Javadoc for Thread.activeCount()'说,“返回当前线程线程组中活动线程数的估计值。”我不知道这意味着什么,但它确实听起来不像整个JVM中活动线程的数量。当我编译并运行一个Java程序,它不从main()调用'Thread.sleep(1000000)'时,我在Linux机器上得到一个包含22个线程的进程。核心转储显示其中三个是Java线程,其余的都是纯原生线程。 –
@jameslarge当然。但它们都是服务线程,从代码中直接不可用甚至不明显。我了解提问者询问有关运行其代码的线程。 – Gangnus
任何答案都将绑定到特定JVM实现(甚至可能在特定平台上)的特定版本,以及运行时设置(如垃圾收集器的种类)。根据自己的需求(例如并行GC,I/O完成端口或通常任何类型的低级工作程序线程池),您可以拥有少至1个线程或多于JVM所需的线程数。 – acelent