<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
    主站蜘蛛池模板: 日本免费人成黄页网观看视频 | 国产免费的野战视频| 亚洲av永久无码精品三区在线4| 日韩高清在线免费观看| 一级女人18片毛片免费视频 | 久久性生大片免费观看性| 亚洲理论片在线中文字幕| 国产在线观看免费完整版中文版| 免费国产成人午夜在线观看| 亚洲欧洲av综合色无码| 亚洲成a人无码亚洲成www牛牛| 亚洲av日韩av欧v在线天堂| 国产真人无码作爱视频免费 | 无码AV动漫精品一区二区免费 | 亚洲国产日韩综合久久精品| 亚洲无线码在线一区观看| 亚洲成在人线aⅴ免费毛片| 久久免费99精品国产自在现线| 亚洲一区在线观看视频| 亚洲精品无码永久在线观看你懂的| 中文字幕人成无码免费视频| 成人av片无码免费天天看| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲综合偷自成人网第页色| 国产在线a免费观看| 亚洲一级片免费看| 亚洲第一区二区快射影院| 亚洲好看的理论片电影| 亚洲高清视频一视频二视频三| 野花高清在线观看免费完整版中文| 怡红院免费的全部视频| 午夜亚洲国产理论片二级港台二级| 67pao强力打造67194在线午夜亚洲| 亚洲午夜无码AV毛片久久| 在线免费观看污网站| 91福利视频免费观看| 最新国产乱人伦偷精品免费网站| 日日摸日日碰夜夜爽亚洲| 亚洲人成图片网站| 亚洲欧洲春色校园另类小说| 国产av无码专区亚洲av桃花庵|