2015-12-21 75 views
1

我有一个java的主要方法。我把java主线程睡了一段时间。为java主要方法执行创建了多少个线程?

public static void main(String[] args) { 
    Thread.sleep(10); 
} 

总,如何线程的数量很多会为Java主执行(包括后台程序线程)

+1

任何答案都将绑定到特定JVM实现(甚至可能在特定平台上)的特定版本,以及运行时设置(如垃圾收集器的种类)。根据自己的需求(例如并行GC,I/O完成端口或通常任何类型的低级工作程序线程池),您可以拥有少至1个线程或多于JVM所需的线程数。 – acelent

回答

1

整整创建。

System.out.println(Thread.activeCount()); 

睡一个线程创建任何新主题:

可以通过添加一行检查

睡眠(long millis)来让当前正在执行的线程休眠 (暂停执行)为指定的 毫秒,取决于系统定时器 和调度程序的精确度和准确性。

+0

Javadoc for Thread.activeCount()'说,“返回当前线程线程组中活动线程数的估计值。”我不知道这意味着什么,但它确实听起来不像整个JVM中活动线程的数量。当我编译并运行一个Java程序,它不从main()调用'Thread.sleep(1000000)'时,我在Linux机器上得到一个包含22个线程的进程。核心转储显示其中三个是Java线程,其余的都是纯原生线程。 –

+0

@jameslarge当然。但它们都是服务线程,从代码中直接不可用甚至不明显。我了解提问者询问有关运行其代码的线程。 – Gangnus