我有一个多线程Rails应用程序(使用Sidekiq),并且在每个线程中我将SomeModel的table_name设置为不同的表名
示例:
Thread 1:
SomeModel.table_name = "temp_table1"
Thread 2:
SomeModel.table_name = "temp_table2"
这是线程安全吗?
换句话说,如果我在线程1中将其设置为“temp_table1”,那么线程2或其他线程是否仍然可以看到此更改,或者它是否仅适用于线程1?
我正在使用vanilla Ruby。
答案 0 :(得分:0)
在MRI中设置变量是线程安全的。在线程1更新值后,所有其他线程将看到相同的值。