2013-12-03 3 views
1

Я новичок в Ruby, и быстрый поиск в googling не дал результата. Для этого случая относительно легко закодировать тест, однако, возможно, стоит попросить его здесь получить авторитетный ответ.Выходит ли процесс, когда заканчивается основная нить?

Рассмотрите сценарий: в рубиновом приложении, вызванном из командной строки, основной поток создает и запускает рабочие потоки. Рабочие потоки выполняют длинные вычисления. Метод основной нити не ждет ничего и просто заканчивается после нереста рабочих.

Завершение процесса и рабочие потоки после выхода основного потока?
Есть ли документация, описывающая это поведение?

ответ

0

Пока эти потоки являются потоками демона, они будут выходить вместе с вашей программой. Существует документация о выходе из нитей (хотя и короткая) here. Однако, если вы ищете, чтобы процессы оставались вокруг после того, как они были созданы другим процессом (и завершением соответствующего процесса), вы должны посмотреть на многопроцессорный камень или библиотеку, подходящую для задачи.

+0

Я понимаю, что документация, которую вы указали, не совсем ясна по этому вопросу: в ней явно не указано, что _last thread_ может быть _not__main thread_. В противном случае все еще неясно, что произойдет, когда основной поток выйдет сам по себе - будет ли процесс прекращен или нет. – Mike

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