Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Ruby: thread, process

Что такое Thread? Чем он отличается от Process?

Этот вопрос проверяет знание концепций многозадачности в Ruby, а также различия между потоками и процессами, их применение и особенности.

Короткий ответ

В Ruby поток (Thread) — это легковесный исполнительный поток, который выполняется внутри одного процесса. Потоки позволяют параллельно выполнять несколько задач в рамках одного процесса, что позволяет более эффективно использовать ресурсы. Процесс же — это отдельная программа, которая работает в своем собственном адресном пространстве. Каждый процесс может содержать несколько потоков. Основное различие в том, что потоки разделяют память, а процессы работают в отдельных пространствах памяти.

Длинный ответ

Thread (поток) — это единица выполнения, которая выполняется параллельно с другими потоками в рамках одного процесса. Потоки легковесные, и все потоки одного процесса делят память и другие ресурсы, такие как файловые дескрипторы. Потоки в Ruby используют модель конкурентности: когда один поток ожидает, например, ввода/вывода (I/O), другие потоки могут продолжать выполнение.

Пример создания потока в Ruby:

thread = Thread.new do
  	puts "Hello from thread"
end
thread.join # Ожидаем завершения потока

Process (процесс) — это более тяжелая единица выполнения, которая имеет свое собственное независимое пространство памяти. Процесс может запускать несколько потоков, но каждый процесс изолирован и не имеет прямого доступа к памяти других процессов.

Процесс запускается операционной системой и выполняется в своем собственном пространстве памяти. Процесс более дорог в плане ресурсов по сравнению с потоком, так как создание нового процесса требует выделения отдельного пространства памяти и других ресурсов.

Основные различия:

  • Потоки разделяют память, процессы — нет.

  • Потоки легче по ресурсам, процессы более изолированы.

  • В Ruby потоки создаются с помощью Thread, а процессы — через вызовы операционной системы, например, с использованием fork.

Вывод:
Потоки используются для параллельного выполнения задач внутри одного процесса и имеют общую память, тогда как процессы изолированы друг от друга и используют собственное пространство памяти.

Уровень

  • Рейтинг:

    2

  • Сложность:

    8

Навыки

  • Ruby

    Ruby

Ключевые слова

#thread

#process

Подпишись на Ruby Developer в телеграм