Могут ли рубиновые волокна быть параллельными?

Вы должны использовать "r" для открытия текстовых файлов. Различные операционные системы имеют несколько разные способы хранения текста, и это будет выполнять правильные переводы, так что вам не нужно знать об особенностях локальной операционной системы. Например, вы узнаете, что новые строки всегда будут отображаться как простые "\n", независимо от того, где выполняется код.

Вы должны использовать "rb", если вы открываете нетекстовые файлы, потому что в в этом случае переводы не подходят.

13
задан Jesse Jashinsky 22 December 2012 в 06:22
поделиться

2 ответа

Нет, вы не можете делать параллелизм с Fibers. Fibers просто не являются конструкцией параллелизма, это конструкция потока управления, как Exceptions. В этом весь смысл Fiberов: они никогда не работают параллельно, они кооперативны и детерминированы. Fibers - это coroutines. (На самом деле, я никогда не понимал, почему их не называют просто Coroutines.)

Единственная конструкция параллелизма в Ruby - Thread.

16
ответ дан 1 December 2019 в 20:27
поделиться

если вы хотите получить настоящий параллелизм, вам нужно использовать потоки в jruby (у которого на самом деле нет волокон, у него есть только потоки, по одному на волокно).

Другой вариант - "вилка" на новые процессы, которые могут работать действительно параллельно на MRI.

1
ответ дан 1 December 2019 в 20:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: