黑马程序员技术交流社区
标题:
多线程与内部类问题
[打印本页]
作者:
blackstones1
时间:
2014-6-14 18:57
标题:
多线程与内部类问题
new Thread(new Runnable()
{
public void run()
{
System.out.println("1runnable run....");
}
})
{
public void run()
{
System.out.println("2subThread...run....");
}
}.start();
这段代码行不行 要怎么理解啊 是不是算2个线程呢 新手求大婶详解
作者:
tiuwing
时间:
2014-6-14 19:52
只算一个,
在线程Thread类的源文件中,run()方法是这样定义的:
public void run() {
if (target != null) {
target.run();
}
}
复制代码
变量target就是构造函数中的实现了Runnable接口的变量,如果你没有重写run的方法,那他就会调用target的run()方法,你重写了方法后,就会用你重写的,传进去的参数也就没啥作用了!
作者:
雾里看花。
时间:
2014-6-14 20:49
而且你的标点符号也多打了 “ }) ”
作者:
西门吹风
时间:
2014-6-14 21:38
本帖最后由 西门吹风 于 2014-6-14 21:43 编辑
应该是一个线程,并且运行的是Thread子类中run 的内容,可以分解成如下代码来解理
class ThreadTest
{
public static void main(String[] args)
{
A a=new A();
B b=new B(a); //相当于new Runnable(new Runnable{}){}
b.start();
}
}
class A implements Runnable //相当于new Runnable(){}
{
public void run()
{
System.out.println("1runnable run...");
}
}
class B extends Thread //相当于 new Thread(){}
{
B(Runnable b)
{
super(b);
}
public void run()
{
System.out.println("2subThread...run...");
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2