0
点赞
收藏
分享

微信扫一扫

线程·拔高·壹

莞尔小迷糊 2023-04-27 阅读 59

文章目录

1 并发和并行

1.1 并发

1.2 并行

2 程序、进程、线程

2.1 程序

2.2 进程

2.3 线程

2.3.1 守护线程

2.4 Java多线程

2.4.1 多线程的创建方式

2.4.1.1 继承Thread类,重写run方法

public class MyThread extends Thread {

    @Override
    public void run() {
        System.out.println("MyThread...run...");
    }

    
    public static void main(String[] args) {

        // 创建MyThread对象
        MyThread t1 = new MyThread() ;
        MyThread t2 = new MyThread() ;

        // 调用start方法启动线程
        t1.start();
        t2.start();

    }
    
}

2.4.1.2 实现runnable接口,重写run方法

public class MyRunnable implements Runnable{

    @Override
    public void run() {
        System.out.println("MyRunnable...run...");
    }

    public static void main(String[] args) {

        // 创建MyRunnable对象
        MyRunnable mr = new MyRunnable() ;

        // 创建Thread对象
        Thread t1 = new Thread(mr) ;
        Thread t2 = new Thread(mr) ;

        // 调用start方法启动线程
        t1.start();
        t2.start();

    }

}

2.4.1.3 实现callable接口,重写call方法

2.4.1 线程的生命周期

状态解释
NEW创建线程,未启动即还没有调用start方法
runable可运行状态, 当调用start方法,线程处于可运行状态,等待CPU的调度
blocked阻塞状态,当一个线程试图获取一个对象锁,但是这个对象被其他线程持有,则该线程进入阻塞状态,只有当该线程持有锁是,该线程才是可运行状态
waiting等待状态
举报

相关推荐

0 条评论