Java線程簡述

下面總結(jié)一下這段時間學(xué)習(xí)java線程的一些入門基礎(chǔ)知識.

一.什么是線程?

? 這個問題可以說是每個剛涉及java線程的人都會想知道的問題.究竟什么是線程呢?有的書上說線程就是執(zhí)行代碼的主體;有的書上說線程就是有序地執(zhí)行代碼的控制流程.其實具體點說一個線程就好比是一個人,他的工作任務(wù)已經(jīng)被安排好,他只需要按順序把任務(wù)全部完成,那么他就可以下班回家了!

二.線程有什么特性?

線程最大的特點就是它是獨立運行的,不會受到其它線程的干擾.

三.什么是并發(fā),什么是并行?

并發(fā):多個線程同時運行在單核的CPU上時,因為CPU一個時間段只能運行一個線程,但由于CPU分配的時間片很短,因此,在我們看來,多個線程在CPU中是同時運作的,這就是并發(fā).

并行:多個線程同時運行在多核CPU上,在同一個時間段就有可能有多個線程同時運行.

四.創(chuàng)建線程的方法

線程的創(chuàng)建可以有2種方法,一種是繼承Thread類,一種是實現(xiàn)Runnable接口.這兩種方法究竟有什么不同呢?通過繼承Thread類來創(chuàng)建線程時,用戶需要覆蓋Tread中的run方法,然后new Thread()創(chuàng)建一個線程實例;但通過實現(xiàn)Runnable接口的方法只需實現(xiàn)run方法,并且在創(chuàng)建線程時是將Runnable的實例作為參數(shù)傳入Tread的構(gòu)造方法中即可.

五.start()與run()的區(qū)別

創(chuàng)建完一個線程實例后,需要調(diào)用其start()方法來啟動該線程實例,如果不調(diào)用start()方法,即使創(chuàng)建出一個線程實例,它也只是相當(dāng)于一個簡單的實例,沒有任何意義!當(dāng)調(diào)用了start()方法,啟動了線程后,線程進(jìn)入了可運行狀態(tài),那么下一步線程就會調(diào)用其run()方法,然后線程執(zhí)行相應(yīng)的任務(wù).

假如在沒有調(diào)用start()方法的情況下,直接調(diào)用run()方法.那么會發(fā)生什么事情呢?在沒有調(diào)用start()方法的情況下直接調(diào)用run()方法,就相當(dāng)于線程實例都沒有被啟動,那么線程實例只是相當(dāng)于一個普通的實例,當(dāng)它調(diào)用run()方法時,也只是個普通的方法調(diào)用,根本沒有任何意義.

六.sleep(),wait(),join()區(qū)別

??在當(dāng)前實例中調(diào)用sleep()方法,會使當(dāng)前線程進(jìn)入睡眠狀態(tài),一般調(diào)用slee()方法時都會傳入一個毫秒數(shù)作為當(dāng)前線程睡眠的時間,線程睡眠相應(yīng)的毫秒后便會重新蘇醒,當(dāng)前線程處于睡眠狀態(tài)時是不會釋放當(dāng)前對象鎖的,其他線程無法獲得當(dāng)前對象的鎖,只能等待,這是便會出現(xiàn)線程堵塞的現(xiàn)象.

??wait()方法與sleep()方法的作用其實是一樣的,但它們也有不同的地方;wait()方法使當(dāng)前線程進(jìn)入等待狀態(tài),進(jìn)入等待狀態(tài)的線程會釋放當(dāng)前獲得的對象鎖,以供后續(xù)的線程使用.

??join()方法是等待指定的線程運行結(jié)束.當(dāng)調(diào)用join()時,當(dāng)前線程會等待它所連接的線程不再處于活動狀態(tài)(既線程運行結(jié)束).

七.interrupted()與isInterrupted()區(qū)別

??這兩個方法都是用來判斷線程是否被中斷,它們的區(qū)別就在于:

??interrupted()方法是一個靜態(tài)方法,它是用來判斷當(dāng)前線程是否中斷,然后返回一個布爾值;

??isInterrupted()方法必須在一個對象上執(zhí)行,判斷所指定的對象是否已經(jīng)被中斷.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容