2013-10-05 6 views

ответ

1

Независимо от рубиновой версии EM работает все, кроме кодового блока EM.defer внутри реактора нити (EM.defer результат и по ошибке блоков в реакторе тоже), так что да,

таймеры, обратные вызовы и гарантируется, что в реакторной (основной) резьбе гарантируется отказ от ошибок

0

Предполагая, что вы используете MRI Ruby, тогда есть только 1 'настоящая/нативная' резьба, которая является основной/реакторной нитью, и весь код выполняется этой реакторной нитью. Все таймеры и обратные вызовы будут подняты на резьбе реактора.

Eventmachine не предназначен для использования нескольких потоков как часть стандартной операции, однако Eventmachine имеет метод «EM :: defer», который будет выполнять блок на другом «ruby» потоке, и я считаю, что если вы работаете с многопоточным рубином, таким как jruby или rubinious, тогда он будет запускаться в «родной» ОС-потоке. «Defer» следует использовать, если вы собираетесь выполнять какой-либо «блокирующий» код.

Смежные вопросы