Я должен придерживаться МРТ Ruby по конкретным c причинам. Мне нужен настоящий параллелизм вместо зеленых нитей, поэтому я использую вилки, которые прекрасно работают. Но я не могу найти способ передать информацию изнутри процессов ветвления в основной процесс через память вместо необходимости записывать данные во внешние файлы.
Как эффективно изменить данные в следующем коде? Я хотел бы добавить данные в глобальный массив из разветвлений:
$data = []
4.times {
Process.fork {
$data << rand
}
}
Process.waitall
p $data
Если нет способа вернуть данные обратно, то есть ли какое-либо решение кеша памяти, которое я могу начать с Ruby без необходимости устанавливать что-либо в основную операционную систему? Драгоценные камни будут работать для меня также. Спасибо.