Різниця між процесами і потоками
Next: Переваги многопоточности Up: Потоки (threads) Previous: Потоки (threads) Contents
За допомогою процесів можна організувати паралельне виконання програм. Для цього процеси клонуються викликами fork () або exec (), а потім між ними організується взаємодія засобами IPC. Це досить дорогий щодо ресурсів процес.
З іншого боку, для організації паралельного виконання і взаємодії процесів можна використовувати механізм многопоточности. Основною одиницею тут є потік.
Потік являє собою полегшену версію процесу. Щоб зрозуміти, в чому полягає його особливість, необхідно згадати основні характеристики процесу.
- власнику ресурсу, якого зазвичай називають процесом або завданням, притаманні:
- стан виконання (активне, готовність і т.д.);
- збереження контексту потоку в неактивному стані;
- стек виконання і деяка статична пам'ять для локальних змінних;
- доступ до простору пам'яті і ресурсів свого процесу.
При коректної реалізації потоки мають певні переваги перед процесами. Їм потрібно: