黑马程序员技术交流社区
标题:
线程this问题
[打印本页]
作者:
黑马-小龙
时间:
2013-1-26 22:21
标题:
线程this问题
本帖最后由 张向辉 于 2013-1-27 14:26 编辑
new Thread(new Runnable(){
public void run(){
while(true){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Runnable--:" + Thread.currentThread().getName());
}
}
}){
public void run(){
while(true){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread--:" + Thread.currentThread().getName());
}
}
}.start();
这里,为什么运行的结果是:Thread--。
是因为:父类没有,就去子类找的吗?是基于这个原则吗? 这里,可以用this表示当前线程吗?
作者:
逍林游
时间:
2013-1-27 10:57
start()前面多了段代码块啊,第一次见到。能解释下作用吗?
代码块中的run()方法好像把new Runnable(){}中的run()方法覆盖了!
作者:
谢毅
时间:
2013-1-27 11:05
首先我们看这个方法的构造,实例了一个Thread,里面传入一个匿名内部类实现了Runnable,然后后面紧接着写了一个Thread匿名子类,这时的优先级就是运行Thread的匿名子类而不看匿名内部类,你说的用this只能在继承Thread类实现线程这种方式中使用取得线程信息,这里的话可以在Thread的匿名子类中使用
作者:
刘军亭
时间:
2013-1-27 12:05
new Thread(new Runnable(){
public void run(){
while(true){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Runnable--:" + Thread.currentThread().getName());
}
}
}).start();
这是开启一个线程的写法,如果想开启多个,可用for循环把上面的代码循环几遍就创建几个。
作者:
胥文
时间:
2013-1-27 12:53
个人是这么理解的
你首先创建了一个线程(这里有A来表示),它实现了Runnable接口,此时,你又创建了一个线程(这里用B来表示)他继承了A,并复写了A的run方法,所以运行结果是子类的内容
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2