关于java线程的一个问题
最近在写一个程序.其中就遇到了这样一个问题.我希望实现两个或多个线程,而这些线程的顺序是   
 Thread[Thread-2,5,main]    
 ----a----    <这是线程2调用b时打印出的>     
 Thread[Thread-3,5,main]    
 ----a----    <这是线程3调用b时打印出的>    
 上面的顺序是我所希望的...但往往会是这样的结果:    
 Thread[Thread-2,5,main]    
 Thread[Thread-3,5,main]    
 ----a----    
 ----a----    
 因此会使我的程序出现错误.我知道这是因为线程的原因造成的    
 我只是想看那们前辈有没有什么好的方法,能够解决这样的问题   
 以下是实例代码     
 代码 
 class   a          
 {          
             public   synchronized   void   b()          
             {          
                         System.out.println( "----a---- ");          
             }          
             class   c   extends   Thread          
             {          
                         public   void   run()          
                         {          
                                     System.out.println(this);          
                                     b()          
                         }          
             }          
 }          
------解决方案--------------------试试: 
 class a 
 { 
 public synchronized void b() 
 { 
 System.out.println( "----a---- "); 
 } 
 class c extends Thread 
 { 
 public void run() 
 { 
 synchronized (System.out){ 
 System.out.println(this); 
 b(); 
 } 
 } 
 } 
 }