Java多线程入门,通过继承Thread类和实现Runnable接口,实现简单的多线程应用

通过继承Thread类,对run方法的重写实现多线程

public class ThreadTest extends Thread {
    @Override
    public void run() {
        for(int i =0;i<20;i++){
            System.out.println("一边听歌");
        }

    }
}

在主线程中调用父类start方法开启线程

public class ThreadTest extends Thread {
    @Override
    public void run() {
        for(int i =0;i<20;i++){
            System.out.println("一边听歌");
        }

    }

    public static void main(String[] args) {
     ThreadTest threadTest = new ThreadTest();
     threadTest.start();//使用父类的start方法开启线程

        for(int i =0;i<20;i++){
            System.out.println("一边工作");
        }
    }
}

可以在输出中看到,输出的二十次听歌和二十次工作是交叉出现的,两个线程互不干扰。

在这里插入图片描述

注意,如果单独调用run方法,只是使用了一次普通方法,并没有开启线程

由于Java的单继承,因此通过继承Thread方法来实现多线程有其局限性,我们也可以通过实现Runnable接口来完成上述工作。事实上Thread类内部也是对Runnable接口的实现。

class ThreadFromRunnable implements Runnable{

    @Override
    public void run() {
        for(int i =0;i<20;i++){
            System.out.println("一边听歌");
        }
    }
}

在主线程中,我们不能直接使用该类,而是通过参数的方式创建Thread类

    public static void main(String[] args) {
        ThreadFromRunnable threadTest = new ThreadFromRunnable();

        //通过创建Thread类来调用

        new Thread(threadTest).start();


        for(int i =0;i<20;i++){
            System.out.println("一边工作");
        }
    }

该方法与第一种方式效果相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值