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();
}}

解决方案 »

  1.   

    多线程调用的是start方法,不是run方法,哥哥。
      

  2.   

    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( );
    }}
    我跑了下很正常。
      

  3.   


    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();
    }
    }