JavaNote 2.7线程

本文介绍了Java中线程的三种状态:就绪状态、运行状态及阻塞状态,并通过两个示例详细展示了如何通过继承Thread类和实现Runnable接口来创建线程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、线程的状态

1、就绪状态:当线程调用了start()方法,该线程就进入了就绪状态,等待JVM里线程调度器的调度。

2、运行状态:如果就绪状态的线程获取了CPU,就可以执行run()。

3、阻塞状态 : 如果一个线程执行了sleep()、wait()等方法,就进入了阻塞状态。

二、创建线程

1、继承Thread类

public class Test25 extends Thread{
    String name;
    Test25(String name){
        this.name = name;
    }
    public static void main(String args[]){
        Thread thread1 = new Test25("我是线程1");
        Thread thread2 = new Test25("我是线程2");
        System.out.println(Test25.currentThread().getName());
        thread1.start();
        thread2.start();
    }

    @Override
    public void run() {
        System.out.println(name+"线程开始执行");

    }
} 

2、实现Runnable接口


public class Test24 implements Runnable{
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() +"正在执行");
    }
    public static void main(String args[]){
        Thread thread = new Thread(new Test24(),"线程1");
        thread.start();
        Thread thread1 = new Thread(new Test24(),"线程2");
        thread1.start();
    }
}
 

3、为什么不直接执行run()方法呢?

public class Test25 extends Thread{
    String name;
    Test25(String name){
        this.name = name;
    }
    public static void main(String args[]){
        Thread thread1 = new Test25("我是线程1");
        Thread thread2 = new Test25("我是线程2");
        thread2.start();
        thread1.run();
        System.out.println(thread1.isAlive());
        System.out.println(thread2.isAlive());

    }
    @Override
    public void run() {
        System.out.println(name+"线程开始执行");

    }
}
结果:直接执行run()方法,并没有建立该线程,所以需调用start()方法来新建线程

备注:由于JAVA语言的单继承机制,使用实现Runnable接口具有更高的灵活性。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值