300字簡單區分線程問題

什麼是進程?  一個進程對應一個功能模塊,比如QQ能聽音樂能聊天,聽音樂是一個進程,聊天是一個進程。一個進程包含一個或者多個線程,但是至少得有一個線程。

什麼是線程?  程序的最小單位,能獨立執行一個完整的業務流程。

主線程和子線程?  執行main方法下的代碼塊是主線程,創建實例再調用方法的是子線程。

start()和run()執行順序的區別?  兩個start()是多線程,交替執行;兩個run()是調用方法,是單線程,執行完一個再到另一個。

爲什麼線程不安全?   多併發環境下執行同一代碼塊,共享同一內存空間。前一線程還沒執行完全,實現數據更新呢。後一線程就跑過了搗亂,來用同樣的數據了。這數據不是亂套了嗎。

線程問題如何解決?   給方法或者代碼塊加鎖(synchronized)

那些是安全的?那些不安全?   table和buffer是安全的map和builder是不安全的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章