奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

java語言

Java線程編程中的主線程詳細(xì)介紹

時(shí)間:2024-09-05 11:29:11 java語言 我要投稿
  • 相關(guān)推薦

Java線程編程中的主線程詳細(xì)介紹

  當(dāng)Java程序啟動(dòng)時(shí),一個(gè)線程立刻運(yùn)行,該線程通常叫做程序的主線程(main thread),因?yàn)樗浅绦蜷_始時(shí)就執(zhí)行的。主線程的重要性體現(xiàn)在兩方面:

  它是產(chǎn)生其他子線程的線程;

  通常它必須最后完成執(zhí)行,因?yàn)樗鼒?zhí)行各種關(guān)閉動(dòng)作。

  盡管主線程在程序啟動(dòng)時(shí)自動(dòng)創(chuàng)建,但它可以由一個(gè)Thread對(duì)象控制。為此,你必須調(diào)用方法currentThread()獲得它的一個(gè)引用,currentThread()是Thread類的公有的靜態(tài)成員。它的通常形式如下:

  ?

1
static Thread currentThread( )

  該方法返回一個(gè)調(diào)用它的線程的引用。一旦你獲得主線程的引用,你就可以像控制其他線程那樣控制主線程。

  讓我們從復(fù)習(xí)下面例題開始:

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Controlling the main Thread.
class CurrentThreadDemo {
  public static void main(String args[]) {
    Thread t = Thread.currentThread();
    System.out.println("Current thread: " + t);
    // change the name of the thread
    t.setName("My Thread");
    System.out.println("After name change: " + t);
    try {
      for(int n = 5; n > 0; n--) {
        System.out.println(n);
        Thread.sleep(1000);
      }
    } catch (InterruptedException e) {
      System.out.println("Main thread interrupted");
    }
  }
}

  在本程序中,當(dāng)前線程(自然是主線程)的引用通過調(diào)用currentThread()獲得,該引用保存在局部變量t中。然后,程序顯示了線程的信息。接著程序調(diào)用setName()改變線程的內(nèi)部名稱。線程信息又被顯示。然后,一個(gè)循環(huán)數(shù)從5開始遞減,每數(shù)一次暫停一秒。暫停是由sleep()方法來完成的。Sleep()語句明確規(guī)定延遲時(shí)間是1毫秒。注意循環(huán)外的try/catch塊。

  Thread類的sleep()方法可能引發(fā)一個(gè)InterruptedException異常。這種情形會(huì)在其他線程想要打攪沉睡線程時(shí)發(fā)生。本例只是打印了它是否被打斷的消息。在實(shí)際的程序中,你必須靈活處理此類問題。下面是本程序的輸出:

  ?

1
2
3
4
5
6
7
Current thread: Thread[main,5,main]
After name change: Thread[My Thread,5,main]
5
4
3
2
1

  注意t作為語句println()中參數(shù)運(yùn)用時(shí)輸出的產(chǎn)生。該顯示順序:線程名稱,優(yōu)先級(jí)以及組的名稱。默認(rèn)情況下,主線程的名稱是main。它的優(yōu)先級(jí)是5,這也是默認(rèn)值,main也是所屬線程組的名稱。一個(gè)線程組(thread group)是一種將線程作為一個(gè)整體集合的狀態(tài)控制的數(shù)據(jù)結(jié)構(gòu)。這個(gè)過程由專有的運(yùn)行時(shí)環(huán)境來處理,在此就不贅述了。線程名改變后,t又被輸出。這次,顯示了新的線程名。

  讓我們更仔細(xì)的研究程序中Thread類定義的方法。sleep()方法按照毫秒級(jí)的時(shí)間指示使線程從被調(diào)用到掛起。它的通常形式如下:

  ?

1
static void sleep(long milliseconds) throws InterruptedException

  掛起的時(shí)間被明確定義為毫秒。該方法可能引發(fā)InterruptedException異常。

  sleep()方法還有第二種形式,顯示如下,該方法允許你指定時(shí)間是以毫秒還是以納秒為周期。

  ?

1
static void sleep(long milliseconds, int nanoseconds) throws InterruptedException

  第二種形式僅當(dāng)允許以納秒為時(shí)間周期時(shí)可用。如上述程序所示,你可以用setName()設(shè)置線程名稱,用getName()來獲得線程名稱(該過程在程序中沒有體現(xiàn))。這些方法都是Thread 類的成員,聲明如下:

  ?

1
2
final void setName(String threadName)
final String getName( )

  這里,threadName 特指線程名稱。

【Java線程編程中的主線程詳細(xì)介紹】相關(guān)文章:

java多線程-線程通信實(shí)例詳細(xì)解讀04-02

java的多線程12-04

java多線程03-27

關(guān)于Java多線程介紹04-02

java語言的多線程11-25

java線程的幾種狀態(tài)12-14

JAVA多線程之線程間的通信方式解析04-02

java中通用的線程池實(shí)例代碼08-27

Java多線程的開發(fā)技巧12-01

主站蜘蛛池模板: 钦州市| 聂拉木县| 北碚区| 梅河口市| 东辽县| 扎赉特旗| 金坛市| 全州县| 和田县| 潞西市| 冀州市| 南安市| 山东省| 唐河县| 三穗县| 江川县| 元谋县| 金秀| 开鲁县| 磐安县| 宝丰县| 紫金县| 八宿县| 赫章县| 屯门区| 昌吉市| 临洮县| 陇西县| 韶山市| 舞钢市| 原平市| 武强县| 金阳县| 建始县| 广德县| 建昌县| 金秀| 阳新县| 太和县| 翁牛特旗| 乌鲁木齐县|