Многопоточность: Процесс и Поток



Многопоточка входит в блок обязательных вопросов. По мне он самый сложный из всех. Я сам могу путаться. Сейчас подтягиваю и углубляю знания. Начну с общей теории и перейду в глубь.

И начнем с самой базы.



Process выполняет действия, указанные в памяти программы. ОС помогает создавать, планировать и завершать процессы, используемые процессором.



Thread — небольшой фрагмент процесса. Процесс может иметь несколько потоков, и все они выполняются одновременно.



Ключевые отличия:

- Процесс — это выполнение программы

- Поток — это часть процесса.

- Процессы не легковесные, тогда как потоки легки.

- Для создания и завершения процесса нужно больше времени, а для потока — меньше.

- Процессу требуется больше времени для переключения контекста

- Процессы изолированы и не делятся данными между собой, а потоки делятся

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