Java 多线程(三)——线程的生命周期

本文详细介绍了Java线程的生命周期,包括新建、就绪、运行和阻塞状态,以及线程的终止。同时,讨论了如何控制线程,如join线程、后台线程、线程睡眠、让步和改变线程优先级的方法及其应用场景。
摘要由CSDN通过智能技术生成

1 生命周期

  线程被创建和启动后(调用start()方法后),并不是已启动就进入执行状态,也不是一直处于执行状态。线程状态转换图如下:
这里写图片描述

1.1 新建和就绪状态

  新建状态:当程序new了一个线程对象之后,该线程就处于新建状态。和其他java对象一样,仅仅有JVM为其分配内存,并初始化成员变量的值。
  就绪状态:线程对象调用了start()方法后。JVM为其创建方法调用栈和程序计数器。此时,线程并没有开始运行,何时运行则取决于JVM里线程调度器的调度。

  注意:启动线程是start()方法,不是run()方法。直接调用run(),系统会把线程对象当成一个普通对象,而run()方法也是一个普通方法,而不是线程执行体。因此,在run()方法返回之前,其他线程无法并发执行。
  如下测试代码:

package thread;

/**
 * Created by Zen9 on 2016/3/4.
 */
public class Runtest extends Thread{
   
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println(this.getName() + " " +i);
        }
    }

    public static void main(String[] args) {
        //创建两个新线程,并调用run()方法
        new Runtest().run();
        new Runtest().run();
        for (int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值