黑马程序员技术交流社区

标题: 浅谈多线程继承Thread类和实现runnable接口区别 [打印本页]

作者: 5个半柠檬c    时间: 2015-12-9 16:19
标题: 浅谈多线程继承Thread类和实现runnable接口区别
1,继承Thread类,那么这个类就变成线程类!实现runnable接口这个类并不会变成线程类,只是多一个runnable接口的功能,那么我们到底继承Thread还是实现runnable接口来创建线程任务好呢?
当我们需要多个线程访问不同的线程任务时,也就是开启多个线程干不同的事情时,这时我们直接可以用匿名内部类一起配合继承Thread类来创建线程更为方便。
当时当我们要多个线程同时访问一段代码,里面有相同的属性时,我们可以用实现runnable接口来,这样思路也就会跟清晰,也会更符合面向对象的思想,也会使run()方法里面的代码会简单很多,要在线程里加同步锁也会更为方便。如:
chass Resource{   //线程任务执行的共同资源
}
class 线程任务1 implements Runnable{
Resource r;
public 线程任务1(Resource r){
this.r = r;
}
public void run{
//传入共同执行的代码块(Resource里面的)
}
class 线程任务2 implements Runnable{
Resource r;
public 线程任务2(Resource r){
this.r = r;
}
public void run{
//传入共同执行的代码块(Resource里面的)
}
你就可以在Resource里面加锁。。思路就就更为清晰了!
纯属本人自己理解!勿喷。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2