java线程生命周期

线程的生命周期
  1. 新建 :new关键字创建了一个线程之后,该线程就处于新建状态。jvm为线程分配内存,初始化成员变量值。
  2. 就绪:当线程对象调用了start()方法之后,该线程就处于就绪状态。jvm为线程创建方法栈和程序计数器,等待线程调度器调度。
  3. 运行:获得CPU资源后开始运行run()方法,进入运行状态。
  4. 阻塞:当发生如下状况时,线程将会进入阻塞状态:
  • 线程调用sleep()方法主动放弃所占用的处理器资源
  • 线程调用了阻塞式IO方法,在方法返回之前,线程处于阻塞状态。
  • 线程试图获取一个同步锁,但该同步锁正被其他线程占用。
  • 线程在等待某个通知(notify)
  • 调用线程的suspend()方法将线程暂时挂起,该方法容易导致死锁,应尽量避免使用。
  1. 死亡:线程会以如下三种方式结束进程,就术后就处于死亡状态。
  • run()或call()方法执行完成,程序正常结束。
  • 线程抛出一个未捕获的Exception或Error。
  • 调用stop()方法来结束该线程,该方法容易导致死锁!尽量避免使用!
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。