Это немного зависит от используемой вами реализации Ruby. Что касается MRI Ruby (Ruby «по умолчанию»), это безопасная (атомарная) операция из-за ее глобальной блокировки интерпретатора, которая защищает некоторые операции, такие как назначения от bein, прерванные переключателями контекста.
JRuby также гарантирует , что некоторые операции являются поточно-ориентированными, включая присваивание переменным экземпляра.
В любом случае, пожалуйста, примите во внимание, что любой такой параллельный доступ может быть сериализован случайным образом. То есть вы не можете гарантировать, какие потоки назначают первыми, а какие последними, если вы не используете явные блокировки, такие как Mutex .