Java线程启动相关知识点

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013617791/article/details/85228459
  • JVM启动时就启动了至少2个线程:主线程(执行main函数的线程)+负责垃圾回收线程
  • 线程并不是新建就立即被执行,启动start()方法后也不是立即执行,需要等待JVM线程调度器调度,调度时才执行
  • 线程中run()的调用在start()内部实现的(而不是程序员显式调用)),直接调用线程的run()方法不是启动线程,只是单纯调用run()函数,启动新线程必须使用start()方法。run()由线程调度器决定何时调度,策略由底层平台决定,一般是抢占式
  • 只能对处于新建状态的线程调用start()方法,线程一旦死亡就不能再调用start()使之重新启动,即一个线程只能调用一次start(),多次调用会抛出IllegalThreadStateException异常

猜你喜欢

转载自blog.csdn.net/u013617791/article/details/85228459