Вы должны использовать "r"
для открытия текстовых файлов. Различные операционные системы имеют несколько разные способы хранения текста, и это будет выполнять правильные переводы, так что вам не нужно знать об особенностях локальной операционной системы. Например, вы узнаете, что новые строки всегда будут отображаться как простые "\n"
, независимо от того, где выполняется код.
Вы должны использовать "rb"
, если вы открываете нетекстовые файлы, потому что в в этом случае переводы не подходят.
Нет, вы не можете делать параллелизм с Fiber
s. Fiber
s просто не являются конструкцией параллелизма, это конструкция потока управления, как Exception
s. В этом весь смысл Fiber
ов: они никогда не работают параллельно, они кооперативны и детерминированы. Fiber
s - это coroutines. (На самом деле, я никогда не понимал, почему их не называют просто Coroutine
s.)
Единственная конструкция параллелизма в Ruby - Thread
.
если вы хотите получить настоящий параллелизм, вам нужно использовать потоки в jruby (у которого на самом деле нет волокон, у него есть только потоки, по одному на волокно).
Другой вариант - "вилка" на новые процессы, которые могут работать действительно параллельно на MRI.