激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - Java線程編程中isAlive()和join()的使用詳解

Java線程編程中isAlive()和join()的使用詳解

2020-01-07 14:23goldensun JAVA教程

這篇文章主要介紹了Java線程編程中isAlive()和join()的使用詳解,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下

一個線程如何知道另一線程已經(jīng)結(jié)束?Thread類提供了回答此問題的方法。

有兩種方法可以判定一個線程是否結(jié)束。第一,可以在線程中調(diào)用isAlive()。這種方法由Thread定義,它的通常形式如下:

?
1
final boolean isAlive( )

如果所調(diào)用線程仍在運(yùn)行,isAlive()方法返回true,如果不是則返回false。但isAlive()很少用到,等待線程結(jié)束的更常用的方法是調(diào)用join(),描述如下:

?
1
final void join( ) throws InterruptedException

該方法等待所調(diào)用線程結(jié)束。該名字來自于要求線程等待直到指定線程參與的概念。join()的附加形式允許給等待指定線程結(jié)束定義一個最大時間。下面是前面例子的改進(jìn)版本。運(yùn)用join()以確保主線程最后結(jié)束。同樣,它也演示了isAlive()方法。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Using join() to wait for threads to finish.
class NewThread implements Runnable {
  String name; // name of thread
  Thread t;
  NewThread(String threadname) {
    name = threadname;
    t = new Thread(this, name);
    System.out.println("New thread: " + t);
    t.start(); // Start the thread
  }
  // This is the entry point for thread.
  public void run() {
    try {
      for(int i = 5; i > 0; i--) {
        System.out.println(name + ": " + i);
        Thread.sleep(1000);
      }
    } catch (InterruptedException e) {
      System.out.println(name + " interrupted.");
    }
    System.out.println(name + " exiting.");
  }
}
 
class DemoJoin {
  public static void main(String args[]) {
    NewThread ob1 = new NewThread("One");
    NewThread ob2 = new NewThread("Two");
    NewThread ob3 = new NewThread("Three");
    System.out.println("Thread One is alive: "+ ob1.t.isAlive());
    System.out.println("Thread Two is alive: "+ ob2.t.isAlive());
    System.out.println("Thread Three is alive: "+ ob3.t.isAlive());
    // wait for threads to finish
    try {
      System.out.println("Waiting for threads to finish.");
      ob1.t.join();
      ob2.t.join();
      ob3.t.join();
    } catch (InterruptedException e) {
      System.out.println("Main thread Interrupted");
    }
    System.out.println("Thread One is alive: "+ ob1.t.isAlive());
    System.out.println("Thread Two is alive: "+ ob2.t.isAlive());
    System.out.println("Thread Three is alive: "+ ob3.t.isAlive());
    System.out.println("Main thread exiting.");
  }
}

程序輸出如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
New thread: Thread[One,5,main]
New thread: Thread[Two,5,main]
New thread: Thread[Three,5,main]
Thread One is alive: true
Thread Two is alive: true
Thread Three is alive: true
Waiting for threads to finish.
One: 5
Two: 5
Three: 5
One: 4
Two: 4
Three: 4
One: 3
Two: 3
Three: 3
One: 2
Two: 2
Three: 2
One: 1
Two: 1
Three: 1
Two exiting.
Three exiting.
One exiting.
Thread One is alive: false
Thread Two is alive: false
Thread Three is alive: false
Main thread exiting.

如你所見,調(diào)用join()后返回,線程終止執(zhí)行。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品国内视频 | 成人三级电影在线 | 国产成人精品二区 | 亚洲电影在线观看高清免费 | 能直接看av的网站 | 黄污在线观看 | 妇子乱av一区二区三区 | 国产精品久久久久久久娇妻 | 一级毛片特黄 | 欧美另类激情 | 欧美亚洲另类在线 | 久久亚洲线观看视频 | 久久久久成人精品亚洲国产 | 欧美大荫蒂xxx | 国产免费片 | 免费观看视频91 | 毛片网站视频 | 国产精品午夜在线 | 美国av片在线观看 | 欧美老外a级毛片 | 99久久精约久久久久久清纯 | 99视频有精品视频高清 | 黄色aaa视频| 欧美国产成人在线 | 一级黄色片武则天 | 欧美成人激情在线 | 久久久久久亚洲国产精品 | 偿还电影免费 | 羞羞的视频 | 91精品国产乱码久 | 超碰一区| 91专区在线观看 | 夜班护士在线观看 | 黄色美女网站免费看 | 亚洲精品一区国产精品丝瓜 | 国产高潮好爽好大受不了了 | 视频久久免费 | 欧美一区二区三区久久久久久桃花 | 亚洲一区二区网址 | 狠狠干夜夜草 | 久久久电影电视剧免费看 |