运行多线程是提示没有main方法

思想与梦想齐飞 2011-12-12 05:32:39
package com.sl.java.test.atm;

import java.lang.Thread;

public class MyThread extends Thread{
private String name;
public MyThread(String name){
this.name=name;
}
public void run(){
for(int i=0;i<10;i++){
System.out.println(name+"运行,1="+i);
}
}
}



package com.sl.java.test.atm;

public class Thread {
public static void main(String[] args) {
MyThread m=new MyThread("线程A");
MyThread m1=new MyThread("线程B");
m.run();
m1.run();
}

}



...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢!问题找到了,是类名错了
脉动 2011-12-12
  • 打赏
  • 举报
回复

package com.sl.java.test.atm; //"l"与"1"需要区别,尽量避免使用(不易区分);另外包名写的也太长了,呵呵

import java.lang.Thread; //对于java.lang包中的类,不需要进行导入,

public class MyThread extends Thread
{
private String name;
public MyThread(String name)
{
this.name=name;
}
public void run()
{
for(int i=0;i<10;i++)
{
System.out.println(name+"运行,1="+i);
}
}
}


package com.sl.java.test.atm;
import com.sl.java.test.atm.MyThread; //由于你定义的Thread类中使用到了MyThread类(在com.sl.java.test.atm包中),
//所以需要进行导入声明,
public class Thread //自己定义的类名等时,尽量不要使用Java中已经使用的名称
{
public static void main(String[] args)
{
MyThread m=new MyThread("线程A");
MyThread m1=new MyThread("线程B");
m.run(); //启动线程:应该写成"m.start();",start()方法内部会自动调用run()方法的
m1.run();
}
}
chensuper 2011-12-12
  • 打赏
  • 举报
回复
class MyThread extends Thread
{

private String name;

public MyThread( String name )
{
this.name = name;
}

public void run( )
{
for ( int i = 0; i < 10; i++ )
{
System.out.println( name + "运行,1=" + i );
}
}
}

public class Test
{

public static void main( String[] args )
{
MyThread m = new MyThread( "线程A" );
MyThread m1 = new MyThread( "线程B" );
m.start( );
m1.start( );
}

}


我跑了下很正常。
  • 打赏
  • 举报
回复
写错了就是start方法
chensuper 2011-12-12
  • 打赏
  • 举报
回复
多线程调用的是start方法,不是run方法,哥哥。

62,614

社区成员

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

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