欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java多线程-37-多线程实现方式二

程序员文章站 2022-07-10 18:31:17
...

前面一篇介绍了多线程的实现方式之一是利用Thread类的子类对象去调用start()方法,这篇,介绍实现多线程的第二种方式。那就是,创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。然后可以分配该类的实例,在创建 Thread 时作为一个参数来传递并启动。

1 查询Runnable接口

搜索并打开Runnable接口,发现只有一个Run方法,Run方法的作用是:使用实现接口 Runnable 的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的 run 方法。方法 run 的常规协定是,它可能执行任何所需的动作。所以,我们定义一个类去实现Runnable,然后重写run()方法就可以。

2.具体代码实现

package thread;

public class Demo2_Thread {

	public static void main(String[] args) {
		MyRunnable mr = new MyRunnable();			//4.创建Runnable子类对象
		//Runnable target = mr;
		Thread t = new Thread(mr);					//5.将其当做参数传递给Thread构造函数
		t.start();									//6.开启线程
		
		for (int i = 0; i < 1000; i++) {			//作为参照的另外的线程
			System.out.println("bbbbb");
		}
	}

}

class MyRunnable implements Runnable {				//1.定义一个类实现runnable

	@Override
	public void run() {								//2.重写run方法
		for (int i = 0; i < 1000; i++) {	//3.将要执行代码写在run方法中
			System.out.println("aaaaa");
		}
	}
	
}

运行一下,肯定可以看到a和b交替输出效果。注意看我们备注的1到6步骤和注解。这个就是利用Thread的构造参数可以传入一个Runnable接口的具体实现类的子类对象这个特点,最终还是通过Thread的实例对象去调用start()方法去开启线程。