1. 程式人生 > 程式設計 >Java執行緒的聯合用法例項分析

Java執行緒的聯合用法例項分析

本文例項講述了Java執行緒的聯合用法。分享給大家供大家參考,具體如下:

一 點睛

在Java中,執行緒控制提供了join()方法。該方法的功能是把指定的執行緒加入到當前執行緒,從而實現將兩個交替執行的執行緒,合併為順序執行的執行緒。比方說,線上程A中呼叫了執行緒B的join()方法,執行緒A就會立刻掛起(suspend),一直等下去,直到它所聯合的執行緒B執行完畢為止,A執行緒才重新排隊等待CPU資源,以便恢復執行。這種策略通常會在main()主執行緒內,用以等待其他執行緒完成後,再結束main()主執行緒。

二 程式碼

public class ThreadJoin
{
  public static void main( String[] args )
  {
    ThreadTest t = new ThreadTest();
    Thread pp = new Thread( t );
    pp.start();
    int flag = 0;
    for( int i = 0; i < 5; ++i )
    {
      if( flag == 3 )
      {
        try
        {
          pp.join();    // 強制執行完pp執行緒後,再執行後面的程式
        }
        catch( Exception e ) // 會丟擲InterruptedException
        {
          System.out.println( e.getMessage() );
        }
      }
      System.out.println( "main Thread " + flag );
      flag += 1;
    }
  }
}
class ThreadTest implements Runnable
{
  public void run()
  {
    int i = 0;
    for( int x = 0; x < 5; ++x )
    {
      try
      {
        Thread.sleep( 1000 );
      }
      catch( InterruptedException e )
      {
        e.printStackTrace();
      }
      System.out.println( Thread.currentThread().getName() + " ---->> " + i );
      i += 1;
    }
  }
}

三 執行

main Thread 0
main Thread 1
main Thread 2
Thread-0 ---->> 0
Thread-0 ---->> 1
Thread-0 ---->> 2
Thread-0 ---->> 3
Thread-0 ---->> 4
main Thread 3
main Thread 4

更多java相關內容感興趣的讀者可檢視本站專題:《Java程序與執行緒操作技巧總結》、《Java資料結構與演算法教程》、《Java操作DOM節點技巧總結》、《Java檔案與目錄操作技巧彙總》和《Java快取操作技巧彙總》

希望本文所述對大家java程式設計有所幫助。