1、wait與sleep的區(qū)別
wait:屬于Object類的方法,wait時其它線程可以訪問鎖定對象,相當于釋放了鎖。
sleep:屬于Thread類的方法,sleep時其它線程不可以訪問鎖定對象。
2、線程與進程的概念
線程:擁有多個執(zhí)行路徑
進程:是一個靜態(tài)的概念,如一個EXE
3、創(chuàng)建和啟動線程的方式
創(chuàng)建的方法有兩種:一種是繼承自Thread類,覆蓋public void run()方法;第二種是實現(xiàn)Runnable接口類,實現(xiàn)public void run()方法。推薦使用第二種方法。
啟動線程調(diào)用start()方法,里面執(zhí)行的是run()方法的實現(xiàn)體。
4、sleep
睡眠指定時間毫秒數(shù),sleep時其它線程不可以訪問鎖定對象。
5、join
等待此被調(diào)用線程執(zhí)行結(jié)束后,調(diào)用線程再往下執(zhí)行。
6、yield
當前正在執(zhí)行的線程對象暫時停頓,釋放CPU時間片給調(diào)用線程。
7、synchronized
鎖定當前方法或者代碼塊,則同一時刻只允許一個線程執(zhí)行此方法或者代碼塊。開始執(zhí)行時獲取鎖,執(zhí)行完成后釋放鎖,執(zhí)行期間,其它線程無法訪問鎖定對象。
8、wait
一直處于等待狀態(tài),只到調(diào)用notify方法或者notifyAll方法時,才能被喚醒。
9、notify/notifyAll
喚醒一個或者所有等待的線程。
10、interrupt
打斷當前執(zhí)行的線程,會觸發(fā)InterruptedException,并執(zhí)行完異常處理代碼。
11、stop
與interrupt相比較,stop會直接打斷當前執(zhí)行的線程,不會觸發(fā)InterruptedException異常,因此也不會執(zhí)行異常處理代碼。