- 進程與線程

image.png
同一時間CPU只能執(zhí)行一個程序,因此程序間會有間斷性。但是這個時間非常短,幾乎感覺不到,只有在開啟了很多個程序之后,會出現(xiàn)明顯的卡頓
- 并行與并發(fā)
并行:兩個任務(wù)同時運行---多核CPU,一個核處理程序A,另一個核處理程序B
并發(fā):兩個任務(wù)同時請求運行,但是處理器一次只能接收一個任務(wù),因為會安排兩個任務(wù)輪流執(zhí)行,由于CPU時間片運行時間短,就會感覺兩個任務(wù)在同時運行
時間片輪轉(zhuǎn):
假設(shè)分配給程序A有執(zhí)行時間3s,程序A有2個線程:線程A和線程B,則A和B會搶時間片執(zhí)行,若A首先搶到,且A里面的任務(wù)完成需要5s,則在3s之后,時間片會結(jié)束,輪詢到別的程序,等到再次輪詢到A的時候,從上次執(zhí)行處繼續(xù)執(zhí)行
- 休眠:釋放CPU時間片
若線程A執(zhí)行一次,休眠了1s,則剩下的2s會分配給B執(zhí)行
join:加入線程,并讓加入的線程執(zhí)行指定時間或執(zhí)行完畢
中斷
守護線程:當(dāng)進程中沒有用戶線程時,JVM退出
即若主線程執(zhí)行完畢,守護線程未執(zhí)行完畢,則JVM退出,守護線程不執(zhí)行了線程同步:多個線程在同一時間段內(nèi)只能有一個線程執(zhí)行指定代碼
線程安全:線程安全問題都是由全局變量及靜態(tài)變量引起的,方法中的局部變量分配在棧空間,每個線程有私有的??臻g。因此訪問是線程安全的