下面这段程序为什么没实现多线程,写法有什么错误
public class Demo
{
public static void main(String[] arg)
{
new TestThread().start();

for(int i=0;i<7;i++)
{
System.out.println("多线程正在运行!");
}
}
}
class TestThread extends Thread
{
public void run()
{
for(int i=0;i<7;i++)
{
System.out.println("是多线程!");
}
}
}

解决方案 »

  1.   

    就开了一个 new TestThread().start();  怎么可能是多线程TestThread t1 = new 
    TestThread t2 = new 
    TestThread t3 = new 
    t1.start();t1.start();t3.start();
    这样才算是3个线程撒
      

  2.   

    public class Demo
    {
    public static void main(String[] arg)
    {
    for(int i=0;i<7;i++)
    {
    new TestThread().start();
    System.out.println("多线程正在运行!");
    }
    }
    }
    class TestThread extends Thread
    {
    public void run()
    {
    for(int i=0;i<7;i++)
    {
    System.out.println(Thread.currentThread().getName()+"是多线程!");
    }
    }
    }
      

  3.   

    楼主在两个for里面分别加Thread.sleep(1000);
      

  4.   

    其实你的确实是多线程的了。一个mian线程,一个你new的TestThread。
      

  5.   


    我想他应该是没看出效果,因为如果中间不用时间断点,只要运行一下就执行完了。就看不出效果了。所以每个for加一个时间断点是必要的。Thread.sleep(1000);//每隔一秒执行一下。
      

  6.   

    的却是多线程, 但是在实际有用中,你不可能把很多的业务逻辑放到主线程中跑吧,你应该再多写几行new TestThread().start(); 把业务都分发到new出来的线程里面去。这样不但是多线程,而且还有实际意义。
      

  7.   

    有两个线程在运行啊!main线程和new TestThread()线程。
      

  8.   

    肯定是多线程的,其实线程的并发执行,收到组多的因素印象,如运行huanjing,处理器。。
    不防把循环次数加大大的(效果不明显),因为现在的处理机速度太快太快了。
    其次,让一个线程进入block状态一秒,你会发现并发啊啊啊 啊a
      

  9.   

    你这个才是运行了主线程(mian)和TestThread()这两个线程  
      

  10.   

    循环次数加大了还是不行啊,还不是交替运行的,还有一点我很郁闷就是明明不是先调用了start()么,为什么先运行的是main函数呢!
      

  11.   

    start 只是启动了线程 但什么时候执行不是由你控制的
      

  12.   


    你在每个for里面加一个Thread.sleep(1000);让程序有所等待,效果才明显。
      

  13.   


    start()只是让线程处于一种可执行状态 而不是立即开始执行run()  真正的执行还要等线程拿到CPU的处理权
      

  14.   

    多线程是没有执行顺序的,是每个线程各自隔一段时间得到CPU分配的时间片来执行。
    通俗点说就是轮流执行,但因为每次分得的时间片不等,所以每个线程的每次执行时长也不等。这是我的理解 
      

  15.   

    多线程的确是多线程 不过是没有什么明显的效果   在每个for里面加一个Thread.sleep(1000) 就可以看到明显的效果了