为什么只有一个线程在运行

jsbyddy 2007-02-11 06:18:02
class MultiThread
{
public static void main(String[] args)
{
MyThread mt=new MyThread();
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();

int index=0;
while(true)
{
if(index++==1000)
break;
System.out.println(Thread.currentThread().getName());
}
}
}

class MyThread implements Runnable
{
int index=0;
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+":"+index++);
}
}
}


运行时有四个线程在运行.当改成如下代码时,只有一个线程在运行.


class MultiThread
{
public static void main(String[] args)
{
MyThread mt=new MyThread();
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();
int index=0;
while(true)
{
if(index++==1000)
break;
System.out.println(Thread.currentThread().getName ());
}
}
}

class MyThread /*implements Runnable*/extends Thread
{
int index=0;
public void run()
{
while(true)
{
System.out.println(/*Thread.currentThread().*/getName()+":"+index++);
}
}
}
...全文
360 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsbyddy 2007-02-11
  • 打赏
  • 举报
回复
怎么没有人回答清楚啊.
yangyy118560 2007-02-11
  • 打赏
  • 举报
回复
以前老师好象讲过,implements runnable 与extends Thread 是不一样的
jsbyddy 2007-02-11
  • 打赏
  • 举报
回复
两个代码我在电脑上运行都通过了.另外我是将MyThread类的一个对像,作为参数传递给Thread的实例,启动了四个线程.
zhanglinkai1984 2007-02-11
  • 打赏
  • 举报
回复
代码写错了哦
大头贼 2007-02-11
  • 打赏
  • 举报
回复
继承的thread,那么要起多个线程必须有多个实例

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧