多线程的创建与启动

1.继承Thread类

 

public class Thread1 extends Thread{
    @Override
    public void run() {
//run()方法体中的代码就是子线程要执行的任务
for (int i = 0; i <1000 ; i++) {
            System.out.println("Thread1--"+i);
        }
    }
}

 

public class Main {
    public static void main(String[] args) {
        Thread1 t=new Thread1();
        t.start();
/*

调用线程的 start()方法来启动线程, 启动线程的实质就是请求 JVM 运行相应的

线程,这个线程具体在什么时候运行由线程调度器(Scheduler)决定

注意:

start()方法调用结束并不意味着子线程开始运行

新开启的线程会执行 run()方法

如果开启了多个线程,start()调用的顺序并不一定就是线程启动的顺序

多线程运行结果与代码执行顺序或调用顺序无关

*/
for (int i = 0; i <1000 ; i++) {
            System.out.println("Main--"+i);
        }
    }
}

2.定义类实现 Runnable 接口(当线程类已经有父类了,就不能用继承 Thread 类的形式创建线程,可以使用实现 Runnable接口的形式)

 

public class MyRunnable implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("Runnable--"+i);
        }
    }
}

 

public class Main {
    public static void main(String[] args) {
        Thread t=new Thread(new MyRunnable());
        t.start();
        for (int i = 0; i < 1000; i++) {
            System.out.println("Main--"+i);
        }

        //有时调用 Thread(Runnable)构造方法时,实参也会传递匿名内部类对象
        Thread t1=new Thread(new Runnable(){
            @Override
            public void run() {
                for (int i = 0; i < 1000; i++) {
                    System.out.println("匿名内部类Runnable--"+i);
                }
            }
        });
        t1.start();
    }
}

 

 

 

 

 

posted @ 2021-05-26 15:49  x77  阅读(175)  评论(0)    收藏  举报