2016-02-20 27 views
0

在紅寶石散列被填充(在單線程方式),並且一旦所有必需的值被填充,具有多個線程(例如3和處理與10個線程的每個)試圖多個進程並行讀取散列值。紅寶石多個線程從相同的散列讀取

問題:

  1. 能否真正線程並行讀取從哈希值?還是會像順序訪問一樣被阻止?

  2. 是更好地有哈希的本地副本爲每個線程對所有這些訪問相同的對象?

  3. 什麼是多線程讀取的最佳實踐?

謝謝!

回答

0

只要你正在做的是讀,不寫,然後它被認爲是線程安全的,但如果你有在任何時候寫(當有正在讀回事),那麼它不會被認爲是線程安全的。

  1. 如果你讀那麼這應該是一個非問題,以保持一個哈希他們不應該被阻止
  2. 見2

記住,如果你做任何寫操作,那麼您就需要直到寫完成暫停讀取。