什麼是進程? 一個進程對應一個功能模塊,比如QQ能聽音樂能聊天,聽音樂是一個進程,聊天是一個進程。一個進程包含一個或者多個線程,但是至少得有一個線程。
什麼是線程? 程序的最小單位,能獨立執行一個完整的業務流程。
主線程和子線程? 執行main方法下的代碼塊是主線程,創建實例再調用方法的是子線程。
start()和run()執行順序的區別? 兩個start()是多線程,交替執行;兩個run()是調用方法,是單線程,執行完一個再到另一個。
爲什麼線程不安全? 多併發環境下執行同一代碼塊,共享同一內存空間。前一線程還沒執行完全,實現數據更新呢。後一線程就跑過了搗亂,來用同樣的數據了。這數據不是亂套了嗎。
線程問題如何解決? 給方法或者代碼塊加鎖(synchronized)
那些是安全的?那些不安全? table和buffer是安全的map和builder是不安全的。