初识Java多线程--主要的两种方式

在 Java 中实现多线程有两种手段,一种是继承 Thread 类,另一种就是实现 Runnable 接口。下面我们就分别来介绍这两种方式的使用。

1.继承Thread类

继承Thread类并且重写run方法

public class MyThread extends Thread {
    @Override
    public void run() {
        int i = 0;
        while (true) {
            i++;
            System.out.println(Thread.currentThread().getName()+"正在运行");
        }
    }
}
class Test{
    public static void main(String[] args) {
        MyThread myThread=new MyThread();
        myThread.start();
        while(true){
            System.out.println(Thread.currentThread().getName()+"正在运行");
        }
    }
}

运行结果

初识Java多线程--主要的两种方式_第1张图片
这里需要注意的是,当你启动新建线程时,切记不要直接调用run()方法,要调父类的start()的方法。

匿名类实现写法

public class MT {
    public static void main(String[] args) {
        new Thread() {
            @Override
            public void run() {
                int i = 0;
                while (true) {
                    i++;
                    System.out.println(Thread.currentThread().getName() + "正在运行");
                }
            }
        }.start();
        while (true) {
            System.out.println(Thread.currentThread().getName() + "正在运行");
        }
    }
}

运行结果
初识Java多线程--主要的两种方式_第2张图片

2.实现Runnable 接口

实现Runnable接口的run()方法

public class MyRunnable implements Runnable{
    @Override
    public void run() {
        while(true){
            System.out.println(Thread.currentThread().getName()+"正在运行");
        }
    }
}
class MyRunnableTest{
    public static void main(String[] args) {
        MyRunnable myRunnable = new MyRunnable();
        Thread thread = new Thread(myRunnable);
        thread.start();
        while(true){
            System.out.println(Thread.currentThread().getName()+"正在运行");
        }
    }
}

匿名类实现

public class MyRunnableTest1{
    public static void main(String[] args) {
        new Thread(() -> {
            while(true){
                System.out.println(Thread.currentThread().getName()+"正在运行");
            }
        }).start();
        while(true){
            System.out.println(Thread.currentThread().getName()+"正在运行");
        }
    }
}

好了,以上就是java多线程实现的两种方式,如有写错的地方欢迎纠正!

你可能感兴趣的:(java,笔记)