日期:2014-05-20  浏览次数:20704 次

多线程里,线程执行的先后次序问题

class Runner implements Runnable
{
 
   public void run()
   {
      System.out.println("In Runner method run()\n");
   
   } 
   
   public synchronized void funcB()
   {
     System.out.println("In Runner funcB \n");
 
 
   }
  
}


class TestRun 
{

    public static void main(String args[])
{
    
Runner r=new Runner(); // run() method

TestRun t=new TestRun();

new Thread(r).start();
r.funcB();
t.funcA();



}


   public synchronized void funcA()
   {
   System.out.println("main method is here\n");   
     

   
   }


}



看以上例子,有时候 public void run() 这个会第一个执行,但是多数情况下都是最后才执行,

请问是什么决定线程执行的先后次序?

------解决方案--------------------
随机 完全没顺序