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里面加锁。。思路就就更为清晰了!
纯属本人自己理解!勿喷。。。 |
|