创建多线程程序的第一种方式_创建多线程

主线程 MyThreadThread

package cn.itcast.day12.demo05;

/**
 * @author admin
 * @version 1.0.0
 * @ClassName Thread.java
 * @Description TODO
 * @createTime 2021年09月26日 18:11:00
 */

import jdk.nashorn.internal.ir.debug.NashornTextifier;

/**
 * 创建多线程程序的第一种方式 创建Thread类的子类
 *     java.long.Thread;是描述线程的类,我们想要实现多线程程序,就必须继承Thread类
 *   实现步骤:
 *      1.创建一个Thread类的子类
 *      2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么)
 *      3.创建Thread类的子类对象
 *      4.调用Thread类中的方法start方法 开启新的线程,执行run方法
 *          void start() 使该线程开始执行 ;Java虚拟机调用该线程的run方法
 *
 *          结果是两个线程并发的运行,当前线程【main线程】(从调用返回给start方法)和另一个线程【创建的新线程】(执行其run方法)
 *          多次启动一个线程是非法的,特别是当线程已经结束执行后,不能在重新启动
 *      java程序属于抢占式调度,哪个线程的优先级高,哪个线程优先执行;同一个优先级,随机选择一个执行
 *
 *
 *
 */
public class MyThreadThread {
    public static void main(String[] args) {
        //  3.创建Thread类的子类对象
        MyThread mt = new MyThread();
        //4.调用Thread类中的方法start方法 开启新的线程,执行run方法
        mt.start();

        for (int i = 0; i < 20; i++) {
            System.out.println("mian" + i);
        }
        /**
         * mian1
         * mian2
         * mian3
         * mian4
         * mian5
         * mian6
         * mian7
         * mian8
         * mian9
         * run:0
         * mian10
         * run:1
         * mian11
         * run:2
         * mian12
         * run:3
         * mian13
         * run:4
         * mian14
         * run:5
         * mian15
         * mian16
         * mian17
         * mian18
         * mian19
         * run:6
         * run:7
         * run:8
         * run:9
         * run:10
         * run:11
         * run:12
         * run:13
         * run:14
         * run:15
         * run:16
         * run:17
         * run:18
         * run:19
         *
         * Process finished with exit code 0
         * mian0
         * run:1
         * mian1
         * run:2
         * mian2
         * run:3
         * mian3
         * mian4
         * mian5
         * mian6
         * mian7
         * run:4
         * mian8
         * run:5
         * mian9
         * run:6
         * mian10
         * run:7
         * mian11
         * run:8
         * mian12
         * run:9
         * mian13
         * run:10
         * mian14
         * run:11
         * mian15
         * run:12
         * mian16
         * mian17
         * mian18
         * mian19
         * run:13
         * run:14
         * run:15
         * run:16
         * run:17
         * run:18
         * run:19
         *
         * Process finished with exit code 0
         */
    }
}

新线程  MyThread

package cn.itcast.day12.demo05;

/**
 * @author admin
 * @version 1.0.0
 * @ClassName MyThread.java
 * @Description TODO
 * @createTime 2021年09月26日 18:42:00
 */
// 1.创建一个Thread类的子类
public class MyThread extends Thread { //注意类名不可以使用Thread 因为如果使用Thread命名的话 默认就是继承同级类了
    //2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么)
    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println("run:" + i);
        }

    }
}

おすすめ

転載: blog.csdn.net/nanyangnongye/article/details/120517277