本文簡(jiǎn)要介紹在 Java 世界中, 線程相關(guān)知識(shí)。主要包含 線程的創(chuàng)建與銷毀;線程安全與同步;線程通訊;注意本文沒有什么高深新知識(shí),只緣起前段時(shí)間在翻看項(xiàng)目代碼的時(shí)候,發(fā)現(xiàn)有些同學(xué)對(duì)此有諸多誤解,故在此稍微整理一下,以幫助類似同學(xué),同時(shí)警醒一下自己。
1. 線程的創(chuàng)建和銷毀;
a) .創(chuàng)建線程可以通過(guò)繼承 Thread 類 或 實(shí)現(xiàn) Runnable 接口, 并重寫 run() 方法, 其中的run() 方法即是本線程需要執(zhí)行的內(nèi)容.
b). 相比于單獨(dú)繼承 Thread ,Runnable接口配合 Thread 實(shí)現(xiàn)會(huì)更靈活,并可以通過(guò)共享一個(gè)Runnable接口實(shí)例,在Thread中共享資源.
c). 至于線程銷毀,不推薦使用 Thread.Stop()方法, 此方法在使用不當(dāng)情況下會(huì)出現(xiàn)死鎖,更多的時(shí)候推薦在run()方法中使用額外變量(或條件)結(jié)束此方法即可.
2. 線程安全與同步;
a). 對(duì)于需要遵循ACID原子一致性的代碼段, 可以通過(guò) synchronized(lockKey){} 代碼塊鎖定;
b). 同時(shí) synchronized 關(guān)鍵字可以用來(lái)修飾一個(gè)方法,表示整個(gè)方法