java 创建线程的疑惑,我看了Runnable的源码,里面只有一个抽象方法
publicinterfaceRunnable{publicabstractvoidrun();}一个类继承Thread或者实现Runnable接口,就可以创建一个线程,...
public
interface Runnable {
public abstract void run();
}
一个类继承Thread或者实现Runnable接口,就可以创建一个线程,这我是知道,我想问,如果我自己随便写一个接口,里面的内容跟Runnable一样,另一个类去实现,为什么这样不能创建一个线程?有谁能详细解释一下? 展开
interface Runnable {
public abstract void run();
}
一个类继承Thread或者实现Runnable接口,就可以创建一个线程,这我是知道,我想问,如果我自己随便写一个接口,里面的内容跟Runnable一样,另一个类去实现,为什么这样不能创建一个线程?有谁能详细解释一下? 展开
展开全部
MyRunnable runnable = new MyRunnable ("A线程");//MyRunnable实现Runnable接口
Thread demo= new Thread(runnable);//要转换成Thread对象
demo.start();
下边是Thread的一个构造方法,也就是上边第二行用到的那个构造方法,
他接收的类型是java.lang.Runnable类型,所以你自定义的是不行的 虽然真正的
runnable那个类很简单
public Thread(Runnable target) {
init(null, target, "Thread-" + nextThreadNum(), 0);
}
Thread demo= new Thread(runnable);//要转换成Thread对象
demo.start();
下边是Thread的一个构造方法,也就是上边第二行用到的那个构造方法,
他接收的类型是java.lang.Runnable类型,所以你自定义的是不行的 虽然真正的
runnable那个类很简单
public Thread(Runnable target) {
init(null, target, "Thread-" + nextThreadNum(), 0);
}
展开全部
这说明你没有了解什么是接口,接口就是制定了统一的标准,Runnable制定了一个标准,你自己制定了一个标准,但是在Thread中只认Runnable的标准,你的标准就得放入你自己写的线程中用了,不能放入和Thread有关系的任何类中,明白了么?通俗一点就是说有得手机只能使用原装电池,非原装的它不认,就不能使用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-09-06
展开全部
Runnable就不是线程,就是一个普通的接口
Thread才是线程,Thread只是支持Runnable接口的实现类,你的task实现都在run方法里,线程直接调用run方法而已;这就实现了任务和线程解耦;你自己写的当然不行了,你怎么提交给Thread
Thread才是线程,Thread只是支持Runnable接口的实现类,你的task实现都在run方法里,线程直接调用run方法而已;这就实现了任务和线程解耦;你自己写的当然不行了,你怎么提交给Thread
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你需要的查看的不是Runable接口的源代码,而是Thread类的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询