亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在單線程環境中使用像 Hashtable 這樣的線程安全集合類有什么缺點嗎?

在單線程環境中使用像 Hashtable 這樣的線程安全集合類有什么缺點嗎?

一只甜甜圈 2022-10-20 17:32:54
面試官問我在單線程環境中使用像 Hashtable 這樣的線程安全類的缺點?有什么缺點嗎?如果不是那么為什么后面會引入非線程安全類?
查看完整描述

2 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

面試官問我在單線程環境中使用像 Hashtable 這樣的線程安全類的缺點?

盡管大多數缺點都與性能有關,但還是有的。即使是單線程環境中也有多個線程(想想 GC、終結器、信號處理程序、JMX 等),因此該語言仍然需要遵守同步結構,例如synchronized,volatile和本機鎖實現。這些語言特性會刷新或使內存緩存無效并影響代碼重新排序,這兩者都會顯著影響整體運行時性能。

如果不是那么為什么后面會引入非線程安全類?

在單線程或多線程應用程序中,非線程安全對象的性能總是比線程安全對象好。處理本地 CPU 緩存內存的能力是現代硬件提供的主要速度提升之一。如果您不必接觸主內存總線,則可以更快地執行操作數個數量級。同步結構降低了使用高速緩存的能力。

最后,線程安全類通常在所涉及的數據結構以及它們在多線程應用程序中正確運行所需的邏輯方面都更加復雜。這意味著即使我們忽略同步結構,它也可能使用更多內存并且運行速度更慢,盡管這種情況的程度很大程度上取決于所討論的特定類


查看完整回答
反對 回復 2022-10-20
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

  1. 它們在單線程環境中速度較慢?,F代 JIT 在單線程環境中使用同步類非常有效,但并不完美。

  2. 它們在多線程環境中要慢得多。如果您有不可變的集合,您可以安全地從不同的線程使用,但同步集合的工作速度會慢得多。

  3. [設計] 它的鎖定語義大多是無用的,所以無論如何都需要額外的同步。你很少只需要讀或寫,大多數時候你先讀然后寫,你希望它是原子的?;蛘吣朐试S多個同時讀取。


查看完整回答
反對 回復 2022-10-20
  • 2 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號