<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Jafe Lee

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      49 隨筆 :: 0 文章 :: 24 評(píng)論 :: 0 Trackbacks
    ?1、開啟一個(gè)新線程的方法,歸結(jié)起來(lái)不外乎有兩種:
    • 繼承類java.lang.Thread ,覆蓋其中的方法 run(); 實(shí)例化該子類,例如:
      public?class?MyThread?extends?Thread?
      {
      ???
      public?void?run()?
      ??{
      ??????
      //?do?some?work
      ???}
      }
      //?code?to?use?MyThread
      new?MyThread().start();
    • 定義一個(gè)實(shí)現(xiàn)接口 java.lang.Runnable; 的類,實(shí)現(xiàn)該接口的方法run(); 然后將該類的一個(gè)實(shí)例作為實(shí)參傳給Thread的構(gòu)造方法。例如:
      public?class?MyThread2?implements?Runnable?
      {
      ???
      public?void?run()?
      ??{
      ??????
      //?do?some?work
      ???}
      }

      //?code?to?use?MyThread2
      Thread?t?=?new?Thread(MyThread2);
      t.start();
    • 無(wú)論用哪種方法最終得到的都是一個(gè)Thread的object,當(dāng)調(diào)用方法start()時(shí),系統(tǒng)將創(chuàng)建一個(gè)新的線程來(lái)執(zhí)行run() 方法,這個(gè)新的線程將一直運(yùn)行知道run方法退出。在新線程開始運(yùn)行的同時(shí),原來(lái)的線程也將繼續(xù)執(zhí)行start()之后的代碼。
    2、一個(gè)線程的生命周期:每個(gè)線程的生命周期(lifecycle)一共有六個(gè)狀態(tài)(state),這六個(gè)狀態(tài)用枚舉類型Thread.State的六個(gè)枚舉常量來(lái)表示。分別是:
    3、線程優(yōu)先級(jí):線程可以有不同優(yōu)先級(jí),Thread定義了三個(gè)優(yōu)先級(jí)常量:
    public?final?static?int?MIN_PRIORITY?=?1;?//最小優(yōu)先級(jí)
    public?final?static?int?NORM_PRIORITY?=?5;?//默認(rèn)的優(yōu)先級(jí)
    public?final?static?int?MAX_PRIORITY?=?10;?//最大優(yōu)先級(jí)
    一個(gè)線程的優(yōu)先級(jí)可以是1到10中任何一個(gè)整數(shù)(包括1和10).方法 void setPriority(int newPriority) 可以用來(lái)設(shè)置線程有限級(jí)。關(guān)于優(yōu)先級(jí)需要注意的是,調(diào)度器總是選擇優(yōu)先級(jí)最高的線程來(lái)執(zhí)行,但是java的線程優(yōu)先級(jí)是和操作系統(tǒng)相關(guān)的,例如windows XP系統(tǒng)有7個(gè)優(yōu)先級(jí),java中的某些優(yōu)先級(jí)會(huì)對(duì)應(yīng)到xp的7個(gè)優(yōu)先級(jí)中去。但是SUN 的linux版本的JVM上所有線程的優(yōu)先級(jí)都是NORM_PRIORITY。在使用優(yōu)先級(jí)的同時(shí)也要避免餓死的情況出現(xiàn)。

    4、處理 uncaught exceptions:
    當(dāng)一個(gè)線程的run()方法執(zhí)行完畢或者run()方法執(zhí)行return語(yǔ)句時(shí),線程正常中止。當(dāng)run方法拋出一個(gè)unchecked異常時(shí)(注意:run方法是不能拋出checked異常的),線程也會(huì)中止并且打印出異常信息。如果你想捕獲處理該異常,則必須為該線程添加一個(gè)uncaught exception handler來(lái)執(zhí)行。例如:
    package?uncaughtexception;
    public?class?MyThread?implements?Runnable
    {
    ????@Override
    ????
    public?void?run()
    ????{
    ????????
    throw?new?UnsupportedOperationException();
    ????}
    }


    package?uncaughtexception;

    public?class?TestMyThread
    {
    ????
    public?static?void?main(String?[]?args)
    ????{
    ????????Thread?aThread?
    =?new?Thread(new?MyThread());
    ????????
    ????????aThread.setUncaughtExceptionHandler(
    new?Thread.UncaughtExceptionHandler()
    ????????{
    ????????????@Override
    ????????????
    public?void?uncaughtException(Thread?t,?Throwable?e)
    ????????????{
    ????????????????System.out.println(
    "Hello");
    ????????????}
    ????????});
    ????????
    ????????aThread.start();
    ????}
    }
    運(yùn)行結(jié)果: Hello
    posted on 2007-09-12 21:32 Jafe Lee 閱讀(952) 評(píng)論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 免费人成在线观看播放a| 青青草免费在线视频| 在线看无码的免费网站| 免费人成网站在线观看10分钟| 97免费人妻无码视频| 日本特黄特色aa大片免费| 免费永久看黄在线观看app| 国产亚洲精品资在线| 亚洲自偷精品视频自拍| 亚洲精品国产高清在线观看| a级毛片免费网站| 国产又黄又爽又猛免费app| 亚洲AⅤ永久无码精品AA| 少妇中文字幕乱码亚洲影视| 亚洲乱色熟女一区二区三区蜜臀| 久久不见久久见免费影院www日本| 三年片在线观看免费观看大全一 | 91香蕉成人免费网站| 国产人成免费视频| 亚洲精品免费在线观看| 亚洲午夜成人精品无码色欲| a级毛片毛片免费观看久潮喷| 麻豆精品国产免费观看| 亚洲AV成人一区二区三区AV| 羞羞视频免费观看| 亚洲无砖砖区免费| 在线亚洲精品自拍| 亚洲乱码国产乱码精华| 黄色片免费在线观看| 免费少妇a级毛片人成网| 亚洲理论在线观看| a视频免费在线观看| 国产国产人免费视频成69大陆| 99久久精品国产亚洲| 国产高清视频免费在线观看| 最近最好的中文字幕2019免费 | 亚洲视频在线一区| 又硬又粗又长又爽免费看 | 免费在线观看视频网站| 国产亚洲一区二区三区在线不卡 | 亚洲日本国产精华液|