1. 程式人生 > >Thread join()使用說明

Thread join()使用說明

thread.Join把指定的執行緒加入到當前執行緒,可以將兩個交替執行的執行緒合併為順序執行的執行緒。比如線上程B中呼叫了執行緒A的Join()方法,直到執行緒A執行完畢後,才會繼續執行執行緒B。

t.join();      //使呼叫執行緒 t 在此之前執行完畢。

t.join(1000);  //等待 t 執行緒,等待時間是1000毫秒

測試demo:

public class MainClass {
	
	public static void main(String[] args){
		System.out.println("main aaaaaaaaa---"+ System.currentTimeMillis());
		Worker work = new Worker();
		work.start();
		try {
			work.join(3000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			System.out.println("main interrupt---"+ System.currentTimeMillis());
			work.interrupt();
			Thread.currentThread().interrupt();
		}
		System.out.println("main bbbbbbbbbbb---"+ System.currentTimeMillis());
	}
	
	private static class Worker extends Thread {
 
        private Worker() {
        }
 
        public void run() {
            System.out.println("thread 11111---"+ System.currentTimeMillis());
            try {
				Thread.sleep(5000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
            System.out.println("thread 22222---"+ System.currentTimeMillis());
        }
    }

}
執行結果:
main aaaaaaaaa---1476845820078
thread 11111---1476845820079
main bbbbbbbbbbb---1476845823079
thread 22222---1476845825079

參考連結:

相關推薦

Thread.Join() 方法

我們 logs threading start nbsp class tel finish 是不是 1. 什麽是 the calling thread? 2. 什麽是 a thread? 運行一個程序,即開啟了一個進程和至少一個線程,幹活的是線程而非

顛覆我的Thread.join()

hello 喚醒 [] row 之前 world! 優先 tar 對象 學而時習之,不亦說乎! --《論語》   為什麽說是顛覆?   1)任何對象都可以作為鎖對象,鎖對象的行為都是一樣的嗎?之前我一直認為鎖對象的方

淺析Thread.join()

線程 edi xtend `` cond 通過 parent zed lar 概要 本文分為三部分對 hread.join() 進行分析: 1. join() 的示例和作用 2. join() 源碼分析 3. 對網上其他分析 join() 的文章提出疑問 1. join

淺析Java的Thread.join函數

比較 rgs 同步 自定義 測試 row exceptio throws illegal (一)join參數解析 join(): 即join(0),主線程無限等待子進程結束,主線程方可執行。 join(long millis):主線程需等待子進程*毫秒,主線程方可執行。 (

Python 多執行緒 thread join() 的作用

原文地址 在 Python 的多執行緒程式設計中,在例項程式碼中經常有 thread1.join()這樣的程式碼。那麼今天咱們用實際程式碼來解釋一下 join 函式的作用。   join的原理就是依次檢驗執行緒池中的執行緒是否結束,沒有結束就阻塞直到執行緒結束,如果結束則跳轉執行下一

countDownLatch.await()與thread.join()區別

在編寫多執行緒的工作中,有個常見的問題:主執行緒(main) 啟動好幾個子執行緒(task)來完成併發任務,主執行緒要等待所有的子執行緒完成之後才繼續執行main的其它任務。 預設主執行緒退出時其它子執行緒不會停,如果想讓main退出時其它子執行緒終止,可以用subThread.set

Thread.join方法的解析(轉)

原文連結:https://www.cnblogs.com/huangzejun/p/7908898.html   1. join() 的示例和作用 1.1 示例 1 // 父執行緒 2 public class Parent extends Thread { 3

【轉載】關於C#中Thread.Join()的一點理解

今天是第一次在C#中接觸Thread,自己研究了一下其中Thread.Join()這個方法,下面談談自己的理解。 Thread.Join()在MSDN中的解釋很模糊:Blocks the calling thread until a thread terminates 有兩個主

c++併發程式設計之thread::join()和thread::detach()

thread::join(): 阻塞當前執行緒,直至 *this 所標識的執行緒完成其執行。*this 所標識的執行緒的完成同步於從 join() 的成功返回。 該方法簡單暴力,主執行緒等待子程序期間什麼都不能做。thread::join()會清理子執行緒相關的記憶體空間,

C# 執行緒 正確使用Thread.Join()停止方式

/// <summary>        /// 停下執行緒        /// </summary>   &nb

C# 線程 正確使用Thread.Join()停止方式

join() dst 否則 dstat read oid cep reading void /// <summary> /// 停下線程 /// </summary> private void MyStopT

head first Thread.join()

友情推薦: 執行緒池原理 深入Thread.sleep 多執行緒中斷機制 不使用Thread.join() 測試執行緒 先上程式碼: /** * Created by Zero on 2017/8/23. */ public class Te

Java Thread.join()詳解--父執行緒等待子執行緒結束後再結束

一、使用方式。 join是Thread類的一個方法,啟動執行緒後直接呼叫,例如: ? 1 Thread t = new AThread(); t.start(); t.join();

Java Thread.join()方法

join()方法:讓主執行緒等待它的子執行緒死亡。即在一個執行緒中啟動新的執行緒,如果子執行緒呼叫了join方法,主執行緒會等子執行緒死亡後才會繼續往下執行。例子:public class ThreadJoin extends Thread{ public void r

執行緒間通訊_等待/通知之Thread.join()

Thread.join原始碼:public final synchronized void join(long millis) throws InterruptedException {

java多執行緒—Thread.Join()和Thread.Sleep()

其實我想要   一種美夢睡不著   一種心臟的狂跳   瓦解界線不被撂倒 奔跑 依靠   我心中最想要   看你看過的浪潮   陪你放肆地年少   ——林俊杰【偉大的渺小】 ------------

Java中用Thread.join實現單任務分成多個任務最後合併結果集

執行任務的具體執行緒類: package com.utils; import java.util.ArrayList; import java.util.List; public class MyThread extends Thread { private Lis

多執行緒--Thread.join方法

在Thread類的Api中,Join的作用是讓當前執行緒等待目標執行緒結束之後才繼續執行。 分別是 public final synchronized void join(long millis, int nanos); //使當前執行緒等待目標執行緒millis 毫秒 ,nanos納秒之後,當

C++併發實戰2:thread::jointhread::detach

    thread::join()是個簡單暴力的方法,主執行緒等待子程序期間什麼都不能做,一般情形是主執行緒建立thread object後做自己的工作而不是簡單停留在join上。thread::join()還會清理子執行緒相關的記憶體空間,此後thread object

Thread join()使用說明

thread.Join把指定的執行緒加入到當前執行緒,可以將兩個交替執行的執行緒合併為順序執行的執行緒。比如線上程B中呼叫了執行緒A的Join()方法,直到執行緒A執行完畢後,才會繼續執行執行緒B。t