class PrimeRun implements Runnable
{
long minPrime;
PrimeRun(long minPrime)
{
this.minPrime = minPrime;
}
public void run()
{ // compute primes larger than minPrime
. . .
}
}
PrimeRun p = new PrimeRun(143);
new Thread(p).start();
此处有疑问,为什么可以直接new Thread(p),我知道这是Thread类的一个构造函数,我想问的是在此处为什么能直接创建Thread类的构造函数?
API文档在对Thread类说明的时候提到Thread类以实现接口Runnable,这对于此处调用有没有影响?
或者说是Thread类自身有像Object类一样 可以在其他类中直接new一个构造函数?因为此处PrimeRun类只是implements Runnable并没有extends Thread 。
还有,是不是和线程代码存放的位置有关?实现 Runnable,代码存放在接口的子类的run方法中。
求大神帮忙解释,折腾半夜……
javaAndroid 发表于 2014-11-9 10:27
不太明白楼主的意思。
在此处为什么能直接创建Thread类的构造函数?
那个构造函数你也知道啊
王世虎 发表于 2014-11-9 12:56
谢谢,你说的我明白。是不是Thread类的权限很大,别的类可以直接创建其构造函数。因为没有声明继承Thread ...
王会涛 发表于 2014-11-9 13:42
创建线程的第二种方式:实现Runable接口
步骤:
1.定义类实现Runable接口
jacoblx 发表于 2014-11-9 13:39
构造函数是他自己本身有的,可以去查API。Thread类是Java.lang包中的,所以不需要导包啊,就像你用String ...
yaodd321 发表于 2014-11-10 00:33
边看回复边学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |