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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011541946/article/details/82056473

前面一篇介绍了多线程的实现方式之一是利用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()方法去开启线程。

猜你喜欢

转载自blog.csdn.net/u011541946/article/details/82056473