欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

在Java里如何減少線程上下文切換?

錢琪琛2年前11瀏覽0評論

對于單個java應用來說,減少線程上下文切換發生在多線程環境。題主問如何減少線程上下文切換,那么我們要環繞這幾個問題討論下。

一,你的應用是cpu密集型還是io密集型?

如果你的系統為cpu計算密集型,單個線程的cpu時間片越大越好,這就要求你對線程池的線程數做限制,防止過多線程對資源進行搶奪。

二,你給系統判定的并發上限是多少?

每個系統的性能都有上限,過大的負載,會造成性能低下,過小會浪費系統資源,所以需要結合業務得到一個最優值。

三,你的系統架構是否做了優化?

你的系統是否能橫向擴展,盡量在網關,代理層進行流量轉發,通過一定的負載均衡算法來降低單個系統的請求量。服務器的并發模型很重要,是一線程一請求,還是IO多路復用,還是異步模型,一線程一請求,在并發量大時,勢必會造成線程切換頻繁。

四,程序是否業務可以優化?

有些場景,優化業務,可以減少程序的處理性能,降低事務的處理時間,是否有cpu輪詢,是否在復雜業務中大量使用CAS等等。

具體問題具體分析,優化是一條持久之路,沒有最優,只有更優。