Java世界

          學習筆記

          常用鏈接

          統計

          積分與排名

          天籟村

          新華網

          雅虎

          最新評論

          Java線程

          多進程:在操作系統中能運行多個任務。
          多線程:在同一個應用程序中有多個順序流執行。
          兩者區別:進程擁有自己完整的變量,線程則共享相同的數據。

          JVM有一個主線程,啟動Java程序則啟動他,并調用程序的main()方法,多線程是通過虛擬CPU實現,通過java.lang.Thread類實現,繼承Thread類。
          構造方法:
          Thread()
          Thread(Runable target)
          Thread(Runable target,String name)
          啟動線程用run()方法,自動調用。
          start()進入可運行狀態,通過“.”來調用。

          1.實現Runable接口定義唯一的run()方法。
          Class rt = new Class();
          Thread t = new Thread(rt);
          t.start();
          2.繼承Thread類。
          Thread t = new Thread();
          t.start();
          兩者的區別:
          1.Runable 可以從其他類繼承,保持程序風格一致性。
          2.Thread 不能再從其他類繼承。

          結束線程:
          1.run()方法執行完畢。
          2.拋出一個異常或錯誤。
          3.調用一個Deprecated的stop()方法。(過時)

          后臺線程為其他線程提供服務,優先級最低,級別0-10,默認級別為5。
          如:Thread dt = new Thread();
          ??????? dt.setDaemon(true);??? //設置成后臺線程
          ??????? dt.start();

          線程控制:

          測試線程是否處于Runable狀態???isAlive()方法。

          中斷線程
          ?Thread.sleep()中斷時間以毫秒為單位。
          ?Thread.yield()放棄執行,執行不低于此線程的其他線程。

          設置線程的優先級
          getPriority() 獲取
          setPriority() 設置

          對象方法
          wait()處于等待狀態,等待被喚醒。
          notify()/notifyAll() 喚醒線程/所有線程。

          join()調用這個方法主線程,等待加入子線程完成。

          異常為 InterruptedException e 。

          Thread.currentThread().isAlive();?? // 獲取當前線程是否處于Runable狀態
          Thread.currentThread().getName();? //獲取當前線程的名字

          互斥鎖:保證共享數據的完整性。每個對象對應一個標記,保證在任一時刻,只能有一個線程訪問該對象,使用synchronized關鍵字修飾。放在方法、對象、塊前。
          釋放鎖用break,return或拋出exception自動釋放;調用wait()方法將放棄擁有的對象鎖。
          如:public void method() {
          ???????????????synchronized(obj) {
          ???????????????}
          ?????????}
          ?????????等同于
          ?????????public synchronized void method() {
          ?????????}


          死鎖:兩個線程都在等待對象鎖,不可避免。

          posted on 2007-11-01 11:35 Rabbit 閱讀(227) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 介休市| 巧家县| 广河县| 洞口县| 福鼎市| 通江县| 汉川市| 五指山市| 同江市| 阳春市| 鲜城| 城步| 巴林左旗| 通榆县| 孝感市| 金坛市| 金华市| 肥东县| 图们市| 正定县| 镇坪县| 灵川县| 丰县| 江华| 南雄市| 宝清县| 垫江县| 遂川县| 鸡东县| 吉木萨尔县| 龙胜| 钟山县| 新河县| 繁昌县| 安顺市| 伽师县| 外汇| 平谷区| 普洱| 彰化市| 固原市|