java多執行緒應用場景
阿新 • • 發佈:2018-11-26
java多執行緒應用場景
多執行緒是基於一個程序的多個執行過程。多執行緒貌似是提高了處理機的處理速度。實際是這樣麼?
假設我們要做一萬次for迴圈,有十個執行緒,每個執行緒做1000次。那麼多執行緒會比單執行緒執行的快麼。
針對單核cpu來說,單執行緒是最快的。因為多執行緒並不是真正意義上的多個一起執行。而是每個程序都在一定時間片佔用cpu。
到時間就會放棄處理機,而切換程序也需要時間,所以整理上來說還是單執行緒時間快。
那麼我們什麼時候用多執行緒呢?
我們在處理一個網路請求的過程的時候可能花了2ms,而我們實際處理的時間大概只有0.002ms,剩下的都是等待網路傳輸的時
間。這段時間是被這個程序佔用的,這時候我們就需要讓該程序的其他執行緒佔用處理機,多執行緒這時候便起到了作用。
還有就是我們在搭建一個網站的時候,使用者向我們發請求,不同的使用者需要開啟一系列不同的執行緒來相應每個使用者的請求。
多執行緒又得到了應用。使用者發的請求如果是1k的話,伺服器這邊就需要1m甚至更多的開銷來滿足使用者的需求,對伺服器端的開銷還
是很大的。所以我們伺服器如果太多的人訪問的話就會崩潰。而對於淘寶這樣的大網站都是有專門的伺服器先存起來使用者的請求,
然後再把請求給server伺服器處理。當然需要很多成本。但相對於利潤,成本還是值得的。
總結:多執行緒是為了實現業務或者效能才會運用的到。