如何理解 Java 多執行緒

語言: CN / TW / HK

程序和執行緒的概念是作業系統的概念,因此你可能需要看看大學有關《作業系統原理》這本書中的內容才能理解什麼是程序和執行緒。

簡單來說程序和執行緒涉及到 CPU 的使用和記憶體的分配。

可以想象下你的瀏覽器,如果你打開了一個瀏覽器,表示你啟動了一個程序,如果你再開啟多個標籤頁,表示你啟動了不同的執行緒(敲黑板:瀏覽器啟動不同的標籤頁,其實啟動的是不同的程序,不是啟動執行緒,但這個模式比較容易理解罷了)。

manage-java-threads

Java 是多執行緒,就意味著在 JVM 中可以為不同的計算啟動不同的執行緒,來加快處理速度。

類比瀏覽器的例子,你開啟一個網頁,等了一段時間,覺得載入太慢了,你去打開了另外的網頁了。

只要涉及到執行緒就會有記憶體共享問題,如果有記憶體貢獻問題就會有執行緒安全和執行緒同步的問題。

既然有執行緒安全和同步的問題,如何理解和解決?

這些問題就是為什麼在面試的時候老被問到的原因。

 

http://www.ossez.com/t/java/13696