Ruby多个线程​​从相同的哈希读取

时间:2016-02-20 00:27:16

标签: ruby multithreading hash concurrency

填充ruby中的哈希值(以单线程方式),并且一旦填充了所有必需的值,多个线程的多个进程(例如,每个10个线程的3个进程)尝试并行读取哈希值。

问题:

  1. 线程能否真正从哈希并行读取值?或者它们会像顺序访问一样被阻止吗?

  2. 为每个线程设置哈希的本地副本与访问相同对象的所有哈希是否更好?

  3. 多线程读取的最佳做法是什么?

  4. 谢谢!

1 个答案:

答案 0 :(得分:0)

只要您所做的只是阅读而不是写作,那么它被认为是线程安全的,但是如果您必须在任何时候写(当有读数时),那么它就不会认为线程安全。

  1. 不应阻止
  2. 如果您正在阅读,那么保留单个哈希应该不是问题。
  3. 见2
  4. 请记住,如果你必须进行任何写操作,那么你需要暂停读取,直到写完成。