posts - 3,  comments - 2,  trackbacks - 0

          線程 java 的一大特性,它可以是給定的指令序列、給定的方法中定義的變量或者一些共享數據(類一級的變量)。 在 java 中每個 線程 有自己的堆棧和程序計數器(pc),其中堆棧是用來跟蹤 線程 的上下文(上下文是當 線程 執行到某處時,當前的局部變量的值),而程序計數器則用來跟蹤當前 線程 正在執行的指令。 

          在通常情況下,一個 線程 不能訪問另外一個 線程 的堆棧變量,而且這個 線程 必須處于如下狀態之一: 

          1.排隊狀態(ready),在用戶創建了一個 線程 以后,這個 線程 不會立即運行。當 線程 中的方法start()被調用時,這個 線程 就會進行排隊狀態,等待調度程序將它轉入運行狀態(running)。當一個進程被執行后它也可以進行排隊狀態。如果調度程序允許的話,通過調用方法yield()就可以將進程放入排隊狀態。 

          2.運行狀態(running),當調度程序將cpu的運行時間分配給一個 線程 ,這個 線程 就進入了運行狀態開始運行。 

          3.等待狀態(waiting),很多原因都可以導致 線程 處于等待狀態,例如 線程 執行過程中被暫停,或者是等待i/o請求的完成而進入等待狀態。 

          java 中不同的 線程 具有不同的優先級,高優先級的 線程 可以安排在低優先級 線程 之前完成。如果多個 線程 具有相同的優先級, java 會在不同的 線程 之間切換運行。一個應用程序可以通過使用 線程 中的方法setpriority()來設置 線程 的優先級,使用方法getpriority()來獲得一個 線程 的優先級。 

          線程 的生命周期

          一個 線程 的的生命周期可以分成兩階段:生存(alive)周期和死亡(dead)周期,其中生存周期又包括運行狀態(running)和等待狀態(waiting)。當創建一個新 線程 后,這個 線程 就進入了排隊狀態(ready),當 線程 中的方法start()被調用時, 線程 就進入生存周期,這時它的方法isalive()始終返回真值,直至 線程 進入死亡狀態。 

          線程 的實現

          有兩種方法可以實現 線程 ,一種是擴展 java .lang.thread類,另一種是通過 java .lang.runnable接口。 

          posted on 2008-04-27 12:39 Mr. Michael.Q 閱讀(171) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 甘孜县| 合水县| 寻乌县| 衡阳县| 顺义区| 石屏县| 建水县| 临汾市| 红桥区| 诸城市| 葫芦岛市| 西青区| 顺昌县| 大邑县| 宁河县| 富锦市| 北票市| 洪江市| 马尔康县| 河津市| 阜宁县| 武平县| 滁州市| 蛟河市| 固阳县| 天气| 兰州市| 北京市| 阳东县| 大渡口区| 济阳县| 孟连| 延川县| 会昌县| 阿克陶县| 鹤峰县| 中西区| 嘉禾县| 禄劝| 都昌县| 双桥区|