· Визначення, анатомія та планування потоку;
· моделі створення та функціонування потоку;
· бібліотека Pthread
· а
·
Якщо робота підпрограм в програмі є надто складною, тоді доцільно реалізувати ці підпрограми у вигляді міні-програм, які виконуються паралельно в середині основної програми. В попередніх лекціях ми розглянули методи розбиття однієї програми на декілька процесів, кожен з яких виконує окрему задачу. Такі методи дозволяють додатку в кожен момент часу виконувати відразу декілька дій. Але в цьому випадку кожен процес має власний адресний простір та ресурси. Оскільки кожен процес займає окремий адресний простір, то взаємодія між процесами стає великою проблемою. Для забезпечення зв’язку між частинами програми, що виконуються роздільно, необхідно реалізовувати такі засоби міжпроцесорної взаємодії, як канали, FIFO-черги (з дисципліною обслуговування ²першим прийшов – першим опрацьований²) та змінні середовища. Інколи зручно мати одну програму, яка виконує декілька задач одночасно, не розбиваючи її на множину міні-програм. При таких умовах можемо використати потоки. Потоки дозволяють одній програмі складатися з паралельно виконуваних частин, причому всі частини мають доступ до одних і тих же змінних, констант та адресного простору в цілому. Потоки можемо розглядати як міні-програми в основній програмі. Для потоків необхідний менший об’єм програмних ресурсів. Тому потоки можемо розглядати, як полегшені процеси, тобто вони дозволяють скористатися багатьма перевагами процесів без великих затрат на організацію взаємодії між ними. Потоки забезпечують засобами розділу основної програми на декілька паралельно виконуваних завдань.