Java Thread and runnable

本文详细介绍了Java中实现多线程的两种方法:通过继承Thread类和实现Runnable接口。解释了两者之间的区别,包括如何使用start()方法启动线程,以及join()方法在等待所有子线程执行完成后继续主线程的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java中可有两种方式实现多线程,

一种是继承Thread类,(Thread本身实现了Runnable接口,就是说需要写void run 方法,来执行相关操作)

一种是实现Runnable接口

start, 和主线程一起执行,执行的顺序不确定

join,线程们 先执行,当所有的子线程执行完毕后,主线程才执行操作(文章最下面的例子)

 

// 1 Provide a Runnable object, the Thread class itself implements Runnable
//~~~ 1.1
Thread t1 = new Thread(new Runnable() {
    @Override
    public void run() {
        output("t1");
    }
});
t1.start();

//~~~ 1.2 is more general
public class HelloRunnable implements Runnable {
    public void run() {
        System.out.println("Hello from a thread!");
    }
}
(new Thread(new HelloRunnable())).start();

// 2 Subclass Thread (in simple applications)  The Thread class itself implements Runnable
public class HelloThread extends Thread {
    public void run() {
        System.out.println("Hello from a thread!");
    }
}
 (new HelloThread()).start();

 

 

// thread.join
t1.start()
t2.start()
outputresult // 如果想要等到 两个线程t1, t2 都执行完成,再通过outputresult,在主线程输出结果,需要t1.join(), t2.join()

t1.start()
t2.start()
t1.join()
t2.join()
outputresult

 

转载于:https://www.cnblogs.com/webglcn/p/4468690.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值