您好,登錄后才能下訂單哦!
join
合并線程,插隊線程,將此線程執行完成后,再執行其他線程,其他線程阻塞
join是一個成員方法,必須通過Thread對象調用
public class n {
public static void main(String[]args) throws InterruptedException
{
Thread t =new Thread(()-> {
for(int i=0;i<5;i++)
{
System.out.println("a"+i);
}
});
t.start();
for(int i=0;i<5;i++)
{
if(i%2==0)
{
t.join();//插隊,此時main主線程被阻塞,插隊線程執行完所有步驟再執行main
}
System.out.println("b"+i);
}
}
}
例二:
public class n {
public static void main(String[]args) throws InterruptedException
{
new Thread(new father()).start();
}
}
class father extends Thread{
public void run()
{
System.out.println("想抽象,發現沒了");
System.out.println("讓兒子買中華");
Thread t=new Thread(new son());
t.start(); //不行,各走各的邏輯錯誤,再加入join先執行完son,再執行father剩下的
try {
t.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("接過煙");
}
}
class son extends Thread{
public void run()
{
System.out.println("拿錢");
System.out.println("路邊玩10秒");
for(int i=0;i<10;i++)
{
System.out.println(i+"秒過去了");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("去買煙");
System.out.println("回家");
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。