class MyThread extends Thread
{
MyThread(String str)
{
super(str);
} public void run()
 
{
for(int i=0;i<30;i++)
{

System.out.println(getName());

     
     }

}
public static void main(String arg[])
{
MyThread t1=new MyThread("first");
MyThread t2=new MyThread("second");
t1.start();
t2.start();
}
}
为什么两个线程会交替进行 而不是第一个执行完再执行第二个

解决方案 »

  1.   

    一个进程可以划分为多个线程,每个线程轮流占用CPU 运行时间和资源,或者说,把CPU 时间划成片,每个片分给不同的线程,这样,每个线程轮流的“挂起”和“唤醒”(执行),由于时间片很小,给人的感觉是同时运行的。
      

  2.   

    线程本来就是可以同是执行的.所以是交替的.如果你想让某一方法同时只有一个在执行的话。你需要在方法前.并指定同一对象实例标志.加上同步锁
    synchonized
    你上面的代码是不能够只有一个执行的。你需要定义一个static变量.用这个static变量标志来同步.或者你用接口方试来实现这个线程..传入synchonized的参数为同一个实例..
      

  3.   

    class MyThread implements Runnable
    {
      public synchronized void run()
    }调用时
    MyThread my = new MyThread();
    new Thread(my).start();
    new Thread(my).start();
    这样就有两个线程在执行,这样才会一个执行完才执行另一个
      

  4.   

    class MyThread implements Runnable
    {
    public synchronized void run()
    }调用时
    MyThread my = new MyThread();
    new Thread(my).start();
    new Thread(my).start();
    这样就有两个线程在执行,这样才会一个执行完才执行另一个
    这样只是说同时一有一个线程在执行,但并不代表一个执行玩,再执行另外一个