黑马程序员技术交流社区
标题:
多线程的一个问题
[打印本页]
作者:
李贺晓
时间:
2012-10-26 22:03
标题:
多线程的一个问题
class ThreadTest
{
public static void main(String[] args)
{
new Thread()
{
public void main()
{
for(int i=0;i<80;i++)
{
System.out.println(Thread.currentThread().getName()+"...."+i);
}
}
}.start();
for(int i=0;i<80;i++)
{
System.out.println(Thread.currentThread().getName()+"...."+i);
}
/*new Runnable()
{
public void main()
{
for(int i=0;i<80;i++)
{
System.out.println(Thread.currentThread().getName()+"...."+i);
}
}
}.start();---------这里为什么不能用start方法*/
Runnable r=new Runnable()
{
public void main()
{
for(int i=0;i<80;i++)
{
System.out.println(Thread.currentThread().getName()+"...."+i);
}
}
};
new Thread(r).start();
}
}
用Runnable实现的匿名内部类为什么不能直接在后面跟上start方法
作者:
fdiskfix
时间:
2012-10-27 16:21
你Runnable创建的对象,并没有传递给Thread的构造函数中,Runnable是没有start()方法的
new Thread(new Runnable() {
public void main() {
for (int i = 0; i < 80; i++) {
System.out.println(Thread.currentThread().getName()
+ "...." + i);
}
}
}).start();// ---------这里为什么不能用start方法
将匿名内部类传递给Thread构造函数就可以了.
作者:
崔政
时间:
2012-10-27 17:33
大哥。。Runnable是接口,你要实现里面的方法啊。里面只有一个run方法,你却写了个main(),run都执行不了更别说start了。。
Runnable r=new Runnable()
{
public void main()
{
for(int i=0;i<80;i++)
{
System.out.println(Thread.currentThread().getName()+"...."+i);
}
}
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<80;i++)
{
System.out.println(Thread.currentThread().getName()+"...."+i);
}
}
};
new Thread(r).start();
复制代码
在最后一行代码,楼主你也清楚,想要start得new Thread对象,再把你的r给弄进去。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2