今天对java的线程做了进一步的认识,下面讲讲自己对线程的理解
我们要实现一个自己的线程可以继承Thread这个类即可
我们首先创建一个接口,模拟Runnable这个接口
public interface RunnableSY{
public void run();//表示一个方法
}
这个接口这样命名为了仿照和区别,其他的都是添加SY,没有其他的含义
然后创建一个类ThreadSY,实现这个接口
public class ThreadSY implements RunnablesSY{
private RunnableSY ru;
private String name;
//初始化方法
private void init(RunnableSY ru,String name){
this.ru = ru;
this.name = name;
}
//构造方法
public ThreadSY() {
init(null, "threadsy");
}
public ThreadSY(RunnableSY ru,String name) {
init(ru, name);
}
//这里仿照Thread里面的run方法写的,为什么这么写是有原因的
public void run() {
if(ru!=null){
ru.run();
}
}
public void start(){
System.out.println("name:"+this.name);
run();
}
public final String getName(){
return this.name;
}
public final void setName(String name){
this.name = name;
}
}
这样我们的两个类就完成了,其中ThreadSY这个类并不是完全和Thread的功能一样,Thread里面还有线程队列,权限操作,以及其他语言实现的部分方法,native关键字。
下面讲相应的使用
我们可以写一个类直接继承ThreasSY。然后重写他的run方法来实现相应的功能。同时也可以直接继承RunnableSY,实现他的run方法,然后构造一个ThreadSY 来实现run方法。因为java里面一个类只能继承一个父类,可能我们需要对一个类使用线程但是他继承了其他的类,就可以通过implements RunnablesSY这样来调用线程的运行。
具体工作中在什么地方会用到这个设计暂时还未想到。这是一个什么设计模式也还未看懂,欢迎大家指教。