java多線程之:創建開啟一個線程的開銷


---->關於時間,創建線程使用是直接向系統申請資源的,這里調用系統函數進行分配資源的話耗時不好說。
---->關於資源,Java線程的線程棧所占用的內存是在Java堆外的,所以是不受java程序控制的,只受系統資源限制,默認一個線程的線程棧大小是1M(當讓這個可以通過設置-Xss屬性設置,但是要注意棧溢出問題),但是,如果每個用戶請求都新建線程的話,1024個用戶光線程就占用了1個G的內存,如果系統比較大的話,一下子系統資源就不夠用了,最后程序就崩潰了。
--->對操作系統來說,創建一個線程的代價是十分昂貴的, 需要給它分配內存、列入調度,同時在線程切換的時候還要執行內存換頁,CPU 的緩存被 清空,切換回來的時候還要重新從內存中讀取信息,破壞了數據的局部性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM