并發(fā)和并行:例:我們的服務(wù)器能處理1W的并發(fā)量瓮增,處理器有4個核心随夸,說明其實是同時跑的只有4個并行的任務(wù)松忍。
一個程序同時執(zhí)行多個任務(wù)跋理,每一個任務(wù)稱之為一個線程拍霜。
不要調(diào)用Thread類或Runnable對象的run方法,只會執(zhí)行同一個線程中的任務(wù)薪介,而不會啟動新線程祠饺。應(yīng)該調(diào)用start方法,這個方法將創(chuàng)建一個執(zhí)行run方法的新線程汁政。
沒有可以強制線程終止的方法(stop已經(jīng)被棄用)道偷,interrupt可以用來請求終止線程缀旁,標記中斷狀態(tài)為true。
有兩個類似的方法:
interrupted是一個靜態(tài)方法勺鸦,能檢測當前線程是否被中斷并巍,而且會清除中斷狀態(tài),標記中斷狀態(tài)為false换途。
isInterrupted是一個實例懊渡,檢測是否有線程被中斷,不會改變中斷狀態(tài)军拟。
線程搶占式執(zhí)行剃执。
當線程試圖獲取一個內(nèi)部的對象鎖,而該鎖被其他線程持有懈息,則該線程進入阻塞狀態(tài)肾档。
當一個線程被阻塞、等待辫继,另一個線程被調(diào)度為運行狀態(tài)怒见,然后那個線程被重新激活(等待時間到、成功獲得一個鎖)姑宽,線程調(diào)度器檢查它是否具有比運行線程更高的優(yōu)先級遣耍,如果有,則從當前運行的線程中挑選一個炮车,剝奪運行權(quán)配阵,選擇新線程運行。