实现Runable接口来实现多线程

查看Runable接口类的帮助文档,可以发现接口自由一个run方法。那么如何通过实现接口Runable来创建多线程应用呢?



public class PrintThread implements Runnable {
	private String name;                                  //打印机名字
	public PrintThread() {                                 //无参构造函数
	}
	public PrintThread(String name) {                      //带参构造函数
		super();
		this.name = name;
	}
	public void run() {                                    //实现run()方法
		print();
	}
	public void print() {                                   //编写关于打印机的业务方法
		System.out.println(name + "开始打印");
		try {
			Thread.sleep(45);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println(name + "结束打印");
	}
}

那么如何创建PrintThread类的对象呢?创建一个测试TestThread类,具体内容如下


public class TestThread {
	public static void main(String[] args) {
		//创建四个线程
		PrintThread pNT1 = new PrintThread("打印机1");
		//Thread pNT2=new PrintThread("打印机2");
		Thread pNT3 = new Thread(new PrintThread("打印机3"));
		Thread pNT4 = new Thread(new PrintThread("打印机4"));
		//启动线程
		// pNT1.start();
		// pNT2.start();
		pNT3.start();
		pNT4.start();
	}
}


代码解析

在上述代码中,pNT1对象创建成功,当时不能成功调用start()方法。这是因为Runable接口中只有run方法,而没有start方法。

pNT2对象不能成功创建,这是因为Thread类实现Runable接口,PrintThread类也实现Runable接口,即这两个类没有父子关系,所以不能创建成功。

pNT3和pNT4对象能够创建成功,也能够调用start()方法启动线程,所以实现润able接口的对象只能通过Thread(Runable target)构造函数来创建线程。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值