java第三式——巧通線程,進程

進程:(1)資源分配的最小單位——有獨立的地址空間(共享進程中的數據)

          (2)每次創建一個進程就會通過堆棧來創建一個地址空間給對應的元素的位置來進行操作處理

          (因此,同等條件下創建一個進程的成本更高)

           (3)爲動態的有自己的生命週期,它因創建而產生,因調度而運行,因等待資源或事件而被處於等待狀態,因完成任務而被撤消。反映了一個程序在一定的數據集上運行的全部動態過程。

           (4)進程的生存期狀態包括創建、就緒、運行、阻塞和死亡等類型; 

 

 

線程:(1)程序執行的最小單元——同一進程下的線程共享全局變量、靜態變量等數據,

          (2)一個線程可以創建和撤銷另一個線程;同一個進程中的多個線程之間可以併發執行。

          (3)一個程序至少有一個進程,一個進程至少有一個線程.。

          (4)線程的生命週期(新建,就緒,運行,死亡,堵塞)

********************************************************************************************************************************************

                                                                        生命週期

新建(new Thread)
當創建Thread類的一個實例(對象)時,此線程進入新建狀態(未被啓動)。
例如:Thread  t1=new Thread();

就緒(runnable)
線程已經被啓動,正在等待被分配給CPU時間片,也就是說此時線程正在就緒隊列中排隊等候得到CPU資源。例如:t1.start();

運行(running)
線程獲得CPU資源正在執行任務(run()方法),此時除非此線程自動放棄CPU資源或者有優先級更高的線程進入,線程將一直運行到結束。

死亡(dead)
當線程執行完畢或被其它線程殺死,線程就進入死亡狀態,這時線程不可能再進入就緒狀態等待執行。

自然終止:正常運行run()方法後終止

異常終止:調用stop()方法讓一個線程終止運行

堵塞(blocked)
由於某種原因導致正在運行的線程讓出CPU並暫停自己的執行,即進入堵塞狀態。

正在睡眠:用sleep(long t) 方法可使線程進入睡眠方式。一個睡眠着的線程在指定的時間過去可進入就緒狀態。

正在等待:調用wait()方法。(調用motify()方法回到就緒狀態)

被另一個線程所阻塞:調用suspend()方法。(調用resume()方法恢復)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章