内容简介:Java线程生命周期深入理解
正文
当你需要使用 Java 线程在多线程环境下进行编程时,理解Java的线程周期与线程的状态是非常重要的。通过实现Runnale接口或者继承Thread类,我们可以创建线程,为了启动一个线程,我们需要创建一个Thread对象,并且调用它的start()方法,以便以线程的方式来执行run()方法。
Java中的线程生命周期
下面的图展示在Java中线程的不同状态,我们可以创建一个Java线程,并调用start()方法来启动它,但是线程的状态是如何从Running变为Blocked,这依赖与操作系统实现的线程调度算法,Java对此并没有足够的控制权。
New
当我们创建一个新线程对象的时候,需要时候new操作符,此时线程的状态便是New。在这个时候,线程并不是可被调度的,它只是Java语言的一个内部状态。
Runnable
当我们调用Thread对象的start()函数时,它的状态变为Runnable。 控制权被给予线程调度程序来完成它的执行。 是否立即运行此线程或在运行之前将其保持在可运行线程池中,取决于线程调度程序的实现。
Running
线程正在执行时,状态变为Running。 线程调度程序从可运行线程池中选择一个线程,并将其状态更改为正在运行,然后CPU开始执行这个线程。一个线程可以将正在运行的进程状态更改为Runnable,Dead或Blocked。在该状态时,线程将执行run()方法的逻辑。
Blocked/Waiting
一个线程可以通过join()方法,去等待另外一个线程的执行完成;也可以等待一些资源可用,例如生产者消费者问题或IO资源,此时线程的状态将变为Waiting。 线程等待状态结束后,状态变为Runnable,并移回到可运行线程池。
Dead
一旦线程完成执行,它的状态就变成Dead。
本文永久更新链接地址 : http://www.linuxidc.com/Linux/2018-01/150576.htm
以上所述就是小编给大家介绍的《Java线程生命周期深入理解》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Java 多线程(三)—— 线程的生命周期及方法
- Java并发 -- 线程生命周期
- Java线程生命周期与状态切换
- java中线程池的生命周期
- Java线程生命周期这样理解挺简单的
- Java并发编程(01):线程的创建方式,状态周期管理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
阿里巴巴Java开发手册
杨冠宝 / 电子工业出版社 / 2018-1 / 35
《阿里巴巴Java开发手册》的愿景是码出高效,码出质量。它结合作者的开发经验和架构历程,提炼阿里巴巴集团技术团队的集体编程经验和软件设计智慧,浓缩成为立体的编程规范和最佳实践。众所周知,现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程相关的知识点,其他维度的知识点也会影响软件的最终交付质量,比如,数据库的表结构和索引设计缺陷可能带来软件的架构缺陷或性能风险;单元测试的失位导致集......一起来看看 《阿里巴巴Java开发手册》 这本书的介绍吧!