Java之进程与线程
生活随笔
收集整理的這篇文章主要介紹了
Java之进程与线程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、進程
二、線程
1.定義及特點
1)【定義】線程是一個進程內部的一條執行路徑,Java虛擬機允許應用程序并發地運行多個執行路徑
是系統獨立調度和分派【CPU】的基本單位
2)特點
進程中執行運算的最小單位 處理機分配給線程,即真正在處理機上運行的是線程2.主線程和子線程
3.子線程對象調用run() 和調用start()的區別
1 run() 相當于方法調用 ,不會創建新的棧空間,不會有新的子線程 2 start() 開辟新的棧空間,會產生新的子線程 , 再幫助調用run方法執行4.多線程
多線程就是在一個進程中創建多個線程,每個線程完成一個任務
優點
多線程技術使程序的響應速度更快提高資源利用率程序設計更簡單特點
隨機性(異步執行):誰搶到cpu,誰執行宏觀上同時執行,微觀上同一時刻只能執行一個線程(多核除外)5.進程和線程區別
1)進程有獨立的地址空間,一個進程崩潰后,不會對其它進程產生影響,而線程只是一個進程中的不同執行路徑2)線程有自己的棧和局部變量,多個線程共享同一進程的地址空間3)一個進程至少有一個線程6.Java中創建線程
兩種創建方法:
1)第一種:繼承Thread類 2)第二種:實現Runnable接口創建步驟
1.定義線程2.創建線程對象3.啟動線程4.終止線程兩種創建方法比較
1繼承Thread 適合每個線程是獨立執行,沒有資源共享2實現Runnable適合存在資源共享情況,要和Thread類結合使用資源共享分兩種情況a.相同操作,同一個資源:操作代碼和資源同一個類中,并實現Runnable接口b.不同操作,同一個資源:資源單獨一個類,操作分別在不同類中,并實現Runnable接口7.線程五種狀態
新生狀態、可運行狀態、運行狀態、阻塞狀態和死亡狀態
8.線程調度
1)線程調度的方法
join()方法
阻塞指定的線程等到另一個線程完成以后再繼續執行 public final void join(); public final void join(long mills); public final void join(long mills,int nanos); 實現的效果:調用join()_方法的線程對象會插隊到當前線程的前面(即先執行)sleep()方法
當前線程在指定毫秒內停止執行而轉入不可運行狀態 public static void sleep(long millis);yield()方法
當前線程轉入暫時停止運行的狀態 public static void yield();2)sleep()與yield()的區別
9.線程終止
1.標志位,可以使run()方法正常執行完 2.stop()方法強行終止線程【不推薦】 3.interrupt()方法通過拋異常的方式 打斷線程的執行10.其他
【獲取當前線程名字】Thread.currentThread().getName() (通用) 子類線程中可直接使用getName()獲取當前線程名稱 【線程命名】調用Thread類中的setName 改變線程的名字總結
以上是生活随笔為你收集整理的Java之进程与线程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 综合应用题:投票程序(知识点:对象,数组
- 下一篇: Java线程同步