Java中线程的实现

本文介绍了Java中实现多线程的两种方式:继承Thread类和实现Runnable接口。通过示例代码展示了如何启动线程,并分析了两者的区别,指出实现Runnable接口更有利于资源共享和避免单继承的限制,推荐在开发中使用。
摘要由CSDN通过智能技术生成

在Java中要想实现多线程代码有两种方法,一种是继承 Thread 类,另一种就是实现 Runnable 接口

一、继承 Thread 类

Thread 类是在 java.lang 包中定义的,一个类只要继承了 Thread 类,此类就称为多线程操作类。

在 Thread 子类中,必须明确地覆写 Thread 类中的 run() 方法,此方法为线程的主体

例子:继承Thread类实现多线程

class MyThread extends Thread {  //继承Thread类
    private String name;

    public MyThread(String name) {
        this.name = name;
    }

    public void run() {   //覆写Thread类中的run 方法
        for(int i=0;i<5;i++){
            System.out.println(name + " 运行:i = " + i);
        }
    }
}

public class ThreadDemo {
   

    public static void main(String[] args) {
        MyThread mt1 = new MyThread("线程A");
        MyThread mt2 = new MyThread("线程B");
        mt1.run();
        mt2.run();
    }

}

程序运行结果

线程A 运行:i = 0
线程A 运行:i = 1
线程A 运行:i = 2
线程A 运行:i = 3
线程A 运行:i = 4
线程B 运行:i = 0
线程B 运行:i = 1
线程B 运行:i = 2
线程B 运行:i = 3
线程B 运行:i = 4

发现以上的程序是先执行完mt1对象之后再执行mt2对象,并没有交错运行,也就是说,此时线程实际上并没有被启动,

还是属于顺序式的执行方式,那么该如何启动线程呢?如果要正确地启动线程,是不能直接调用run()方法的,而应该

是调用从 Thread 类中继承而来的 start() 方法,具体代码如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值