2020-10-24

Java 线程的两种常用实现方式

第一种方式
类继承 java.lang.Thread 类,覆盖 run方法

//创建线程对象
MyThread t1 = new MyThread();
//开启线程:
t1.start() ; // JVM默认执行 run方法

class MyThread extends Thread{
    @Override
    public void run() {
        for(int i=0;i<10;i++){
            System.out.println(Thread.currentThread().getName()+"好好学习"+i);
        }
    }
}

第二种方式
类实现 java.lang Runnable接口,同时实现run方法

// 创建线程的目标对象
 Mytarget mt = new MyTarget();
 //创建线程对象:
 Thread t2 = new Thread(mt); // 将目标对象作为参数进行传递
 //开启线程
 t2.start(); // JVM默认调用run方法
 class MyThread2 implements Runnable{
    @Override
    public void run() {
        for(int i=0;i<10;i++){
            System.out.println(Thread.currentThread().getName()+"天天向上"+i);
        }
    }
}

–我们常用的线程为main线程

public class demo3 {
    public static void main(String[] args) {
        MyThread t =new MyThread();
        t.start();
        for(int i=0;i<10;i++){
            System.out.println(Thread.currentThread().getName()+"天天向上"+i);
        }
    }
}
class MyThread extends Thread{
    @Override
    public void run() {
        for(int i=0;i<10;i++){
            System.out.println(Thread.currentThread().getName()+"好好学习"+i);
        }
    }
}

在这段代码中,我们在主线程main和线程Thread遍历循环打印好好学习天天向上,发现打印结果不是交错的,说明线程是竞争的
在这里插入图片描述

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页