【发布时间】:2012-02-13 18:31:00
【问题描述】:
我需要一些帮助来理解 Ruby 1.8.7 中的 Hash。
我有一个多线程 Ruby 应用程序,大约 95% 的时间应用程序的多个线程都在尝试访问全局哈希。
我不确定默认的 Ruby Hash 是否是线程安全的。考虑到我的情况,拥有快速哈希但又是线程安全的最佳方法是什么?
【问题讨论】:
-
对此哈希执行了哪些操作?通常,您希望使用互斥锁来操作线程共享资源。
-
您是要读取还是更改哈希?读取是安全的。
-
@theTinMan:我有几个线程经常从哈希中读取。写入哈希的速度要慢得多。我需要确保在尝试同步写入时不会降低读取速度。
-
@Fanatic23,您有兴趣查看读写锁的实现吗?如果你不熟悉这个术语,它就像一个互斥体,但它允许任意数量的读取器同时运行,但只有一个写入器(一旦写入器获得锁,所有读取器都必须等待)。跨度>
标签: ruby multithreading