0%

多线程-Runnable接口

通过实现`Runnable`接口。

环境:IntelliJ IDEA、Java语言

步骤

  1. 自定义类,实现Runnable接口
  2. 实现run()方法,编写线程执行体
  3. 创建线程对象(Thread类),调用start()方法启动线程(将实现Runnable接口的类对象作为参数创建Thread对象)。

代码演示

步骤一

自定义类TestThread3,实现Runnable接口。

1
2
3
public class TestThread3 implements Runnable{

}

步骤二

重写run()方法,编写线程执行体

1
2
3
4
5
6
7
8
9
public class TestThread3 implements Runnable{
@Override
public void run() {
//run方法线程体
for (int i = 0; i < 1300; i++) {
System.out.println(i+":Hello World!");
}
}
}

步骤三

创建线程对象(Thread类),调用start()方法启动线程(将实现Runnable接口的类对象作为参数创建Thread对象)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Test {
public static void main(String[] args) {
//main线程,主线程
//创建实现Runnable接口的实现类对象
TestThread3 testThread3 = new TestThread3();
//创建线程对象(Thread),通过线程对象来开启(start方法)我们的线程(代理)
// Thread thread = new Thread(testThread3);
// thread.start();
new Thread(testThread3).start();

for (int i = 0; i < 3000; i++) {
System.out.println(i+":我在学习多线程--");
}
}
}

测试

程序运行的结果,与继承Thread类的方式运行结果是相似的(传送门)。

1
2
3
4
5
6
...
259:我在学习多线程--
260:我在学习多线程--
790:Hello World!
791:Hello World!
...

扩展

Thread篇博客中提到的下载工具webDownloader类修改成实现Runnable接口方式,只需要将class webDownloader extends Thread继承修改为class webDownloader implements Runnable实现t1.start()直接调用start方法修改为new Thread(t1).start()创建线程类(代理)去启用start方法。

若图片不能正常显示,请在浏览器中打开

欢迎关注我的其它发布渠道