亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java線程編程中的主線程講解

 更新時間:2015年09月28日 18:22:28   投稿:goldensun  
這篇文章主要介紹了Java線程編程中的主線程,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下

當(dāng)Java程序啟動時,一個線程立刻運行,該線程通常叫做程序的主線程(main thread),因為它是程序開始時就執(zhí)行的。主線程的重要性體現(xiàn)在兩方面:

  1. 它是產(chǎn)生其他子線程的線程;
  2. 通常它必須最后完成執(zhí)行,因為它執(zhí)行各種關(guān)閉動作。

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

  static Thread currentThread( )


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

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

// 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)部名稱。線程信息又被顯示。然后,一個循環(huán)數(shù)從5開始遞減,每數(shù)一次暫停一秒。暫停是由sleep()方法來完成的。Sleep()語句明確規(guī)定延遲時間是1毫秒。注意循環(huán)外的try/catch塊。

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

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

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

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

  static void sleep(long milliseconds) throws InterruptedException


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

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

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

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

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


這里,threadName 特指線程名稱。

相關(guān)文章

  • Java多線程并發(fā)生產(chǎn)者消費者設(shè)計模式實例解析

    Java多線程并發(fā)生產(chǎn)者消費者設(shè)計模式實例解析

    這篇文章主要介紹了Java多線程并發(fā)生產(chǎn)者消費者設(shè)計模式實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 與近日火爆的ChatGPT聊Elasticsearch源碼

    與近日火爆的ChatGPT聊Elasticsearch源碼

    這篇文章主要為大家分享了與近日火爆的ChatGPT聊Elasticsearch源碼的話題內(nèi)容,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • SpringCloud 搭建企業(yè)級開發(fā)框架之實現(xiàn)多租戶多平臺短信通知服務(wù)(微服務(wù)實戰(zhàn))

    SpringCloud 搭建企業(yè)級開發(fā)框架之實現(xiàn)多租戶多平臺短信通知服務(wù)(微服務(wù)實戰(zhàn))

    這篇文章主要介紹了SpringCloud 搭建企業(yè)級開發(fā)框架之實現(xiàn)多租戶多平臺短信通知服務(wù),系統(tǒng)可以支持多家云平臺提供的短信服務(wù)。這里以阿里云和騰訊云為例,集成短信通知服務(wù),需要的朋友可以參考下
    2021-11-11
  • FP-Growth算法的Java實現(xiàn)+具體實現(xiàn)思路+代碼

    FP-Growth算法的Java實現(xiàn)+具體實現(xiàn)思路+代碼

    FP-Growth算法比Apriori算法快很多(但是卻比不上時間,how time slipped away)。在網(wǎng)上搜索后發(fā)現(xiàn)Java實現(xiàn)的FP-Growth算法很少,且大多數(shù)不太能理解):太菜。所以就自己實現(xiàn)了一下。這篇文章重點介紹一下我的Java實現(xiàn)
    2021-06-06
  • Java利用endorsed如何覆蓋jdk提供的類詳解

    Java利用endorsed如何覆蓋jdk提供的類詳解

    這篇文章主要給大家介紹了關(guān)于Java利用endorsed如何覆蓋jdk提供的類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • logback之自定義指定日志文件存儲目錄方式

    logback之自定義指定日志文件存儲目錄方式

    這篇文章主要介紹了logback之自定義指定日志文件存儲目錄方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 如何解決IDEA中JSP頁面部分出現(xiàn)綠色背景色問題

    如何解決IDEA中JSP頁面部分出現(xiàn)綠色背景色問題

    這篇文章主要介紹了如何解決IDEA中JSP頁面部分出現(xiàn)綠色背景色問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Javaweb mybatis接口開發(fā)實現(xiàn)過程詳解

    Javaweb mybatis接口開發(fā)實現(xiàn)過程詳解

    這篇文章主要介紹了Javaweb mybatis接口開發(fā)實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Intellij IDEA 如何通過數(shù)據(jù)庫表生成帶注解的實體類(圖文詳細(xì)教程)

    Intellij IDEA 如何通過數(shù)據(jù)庫表生成帶注解的實體類(圖文詳細(xì)教程)

    這篇文章主要介紹了Intellij IDEA 如何通過數(shù)據(jù)庫表生成帶注解的實體類(圖文詳細(xì)教程),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • SparkSQL開窗函數(shù)分析使用示例

    SparkSQL開窗函數(shù)分析使用示例

    開窗函數(shù)的引入是為了既顯示聚集前的數(shù)據(jù),又顯示聚集后的數(shù)據(jù)。即在每一行的最后一列添加聚合函數(shù)的結(jié)果。開窗用于為行定義一個窗口,它對一組值進(jìn)行操作,不需要使用 GROUP BY 子句對數(shù)據(jù)進(jìn)行分組,能夠在同一行中同時返回基礎(chǔ)行的列和聚合列
    2023-01-01

最新評論