Java多线程(3)—— 线程实现之实现Runnable接口

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

实现Runnable接口

因为Java的单根继承特性,需要Runnable来实现类多继承的实现。

package com.myRunnable;
/**
 * 创建一个实现Runnable接口的类
 * @author admin
 */
public class MyRunnable implements Runnable{

	@Override
	public void run() {
		System.out.println("运行中!");
	}

}
package run;

import com.myRunnable.MyRunnable;
/**
 * 运行代码
 * @author admin
 */
public class Run {

	public static void main(String[] args) {
		Runnable runnable = new MyRunnable();
		Thread thread = new Thread(runnable);
		thread.start();
		System.out.println("运行结束!");
	}
}

运行结果:
在这里插入图片描述

由运行代码中可以看出,Runnable接口的实现类的使用方式。可以通过Thread(Runnable target)和Thread(Runnable target, String name)的构造函数可以传递Runnable接口,说明构造函数支持传入一个Runnable接口的对象。

Thread.java 的构造函数

构造函数
Thread() 分配新的Thread对象
Thread(Runnable target) 分配新的Thread对象
Thread(Runnable target, String name) 分配新的Thread对象
Thread(String name) 分配新的Thread对象
Thread(ThreadGroup group, Runnable target) 分配新的Thread对象
Thread(ThreadGroup group, Runnable target, String name) 分配新的Thread对象,以便将 target 作为其运行对象,将指定的 name 作为其名称,并作为 group 所引用的线程组的一员
Thread(ThreadGroup group, Runnable target, String name, long stackSize) 分配新的Thread对象,以便将 target 作为其运行对象,将指定的 name 作为其名称,并作为 group 所引用的线程组的一员,并具有指定的 堆栈大小
Thread(ThreadGroup group, String name) 分配新的Thread对象
参数解析
  • Runnable target
    实现了Runnable接口的类的实例。要注意的是Thread类也实现了Runnable接口,因此,从Thread类继承的类的实例也可以作为target传入这个构造方法。

  • String name
    线程的名字。这个名字可以在建立Thread实例后通过Thread类的setName方法设置。如果不设置线程的名字,线程就使用默认的线程名:Thread-N,N是线程建立的顺序,是一个不重复的正整数。

  • ThreadGroup group
    当前建立的线程所属的线程组。如果不指定线程组,所有的线程都被加到一个默认的线程组中。

  • long stackSize
    线程栈的大小,这个值一般是CPU页面的整数倍。如x86的页面大小是4KB。在x86平台下,默认的线程栈大小是12KB。

发散

Thread.java类也实现了Runnable接口,由此可见构造函数Thread(Runnable target) 不光可以传入 Runnable 接口的对象,还可以传入一个 Thread 类的对象,这样可以将一个Thread 对象中的 run() 方法交由其他的线程进行调用。

猜你喜欢

转载自blog.csdn.net/zx711166/article/details/83003752