рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Бібліотека Pthread

Бібліотека Pthread - раздел Философия, Лекція 6 Розбиття програм на множину потоків Бібліотека Pthread Являє Собою Арі Інтерфейс Для Створення І Керування Потока...

Бібліотека Pthread являє собою Арі інтерфейс для створення і керування потоками в додатках. Бібліотека Pthread базується на стандартизованому інтер­фейсі програмування, який був визначений комітетом по випуску стандартів ІЕЕЕ в стандарті POSIX 1003.1.с. Сторонні фірми-виробники притримуються стандарту POSIX в реалізаціях, які називаються бібліотеками потоків Pthread або POSIX.

Бібліотека Pthread містить більше 60 функцій, які можемо поділити на наступні категорії.

1. Функції керування потоками.

1.1. Конфігурування потоків.

1.2. Відміна потоків.

1.3. Стратегія планування потоків.

1.4. Доступ доданих потоків.

1.5. Обробка сигналів.

1.6. Функції доступу до атрибутів потоку.

1.6.1. Конфігурування атрибутів потоку.

1.6.2. Конфігурування атрибутів, стеків потоків.

1.6.3. Конфігурування атрибутів, стратегій планування потоків.

2. Функції управління мю тексами.

2.1. Конфігурування мю тексів.

2.2. Управління пріоритетами.

2.3. Функції доступу до атрибутів мю тексів.

2.3.1. Конфігурування атрибутів мютексів.

2.3.2. Конфігурування атрибутів протоколів мютексів.

2.3.3. Конфігурування атрибутів управління пріоритетами мютексів.

3. Функції управління умовними змінними.

3.1. Конфігурування умовних змінних.

3.2. Функції доступу до атрибутів умовних змінних.

3.2.1. Конфігурування атрибутів умовних змінних.

3.2.2. Функції спільного використання умовних змінних.

4.1. Анатомія простої багатопоточної програми

Довільна проста багатопоточна програма повинна складатися з основного потоку та функцій, які будуть виконувати інші потоки. Вибрана для реалізації модель створення та функціонування потоків визначає, яким чином в програмі будуть створюватися потоки і як буде відбуватися керування ними. Потоки створюються за принципом ²все і відразу² або при певних умовах. Приклад простої багатопоточної програми, в якій реалізована модель делегування, подано в лістінгу 1.

// Лістінг 1. Використання моделі делегування в простій багато поточній // програмі

# include <iostream>

# include <pthread.h>

void *task1 (void *X) // Визначаємо задачу для виконання потоком ThreadA

{ // . . .

cout << “Потік А завершено” << endl; }

void *task2 (void *X) // Визначаємо задачу для виконання потоком ThreadB

{ // . . .

cout << “Потік B завершено” << endl; }

int main (int argc, char *argv []) {

pthread_t ThreadA, ThreadB; // Оголошуємо потоки

pthread_create (&ThreadA, NULL, task1, NULL); // Створюємо потоки

pthread_create (&ThreadB, NULL, task2, NULL); // Додаткова обробка

pthread_join (ThreadA, NULL); // Очікує завершення потоку

pthread_join (ThreadВ, NULL); // Очікує завершення потоку

return (0); }


В лістінгу 1 робимо акцент на визначенні колекції інструкцій для основ­ного потоку. Основним в даному випадку є керуючий потік, який оголошує два робочих потоки ThreadA і ThreadB. За допомогою функції pthread_create () ці два потоки пов’язуються з задачами, які вони повинні виконувати (task1, task2). Тут (для простоти прикладу) ці задачі всього лише відправляють повідомлення в стандартний вихідний потік, але зрозуміло, що вони могли вирішувати більш корисні задачі. При виклику функції pthread_create () потоки моментально при­ступають до виконання призначених їм задач. Основний потік очікує до тих пір, доки не завершать роботу обидва робочих потоки. Діаграма послідовнос­тей, що відповідає програмі (лістінг 1), подано на рис. 11. Зверніть увагу на те, відбувається з потоками виконання при виклику функції pthread_create () і pthread_join ().

На рис. 11 показано, що виклик функції pthread_create () є причиною роз­галудження, або реалізації ²вилки² в основному потоці виконання, в результаті чого створюються два додаткових потоки (по одному для кожної задачі), які виконуються паралельно. Функція pthread_create () завершується відразу після створення потоків. Ця функція призначена для створення асинхронних потоків. Це означає, що , як робочі потоки, так і основний потік, виконують свої інстру­к­ції незалежно один від одного. Функція pthread_join () заставляє основний по­тік очікувати до тих пір, доки всі робочі потоки завершаться і ²приєднаються² до основного.

4.2. Компіляція та компоновка багатопоточних програм

Всі багатопоточні програми, які використовують бібліотеку потоків POSIX, повинні містити заголовок:

<pthread.h>

Для компіляції багато поточного додатку в середовищі UNIX і Linux з допомогою компіляторів командної стрічки g++ або gсс необхідно з компонува­ти його з бібліотекою Рthread. Для задання бібліотеки використовуйте опцію -1. Так,команда

-1pthread

забезпечить компоновку вашого додатку з бібліотекою, яка узгоджується з ба­гатопоточним інтерфейсом, який визначається стандартом POSIX 1003.1с. Біб­ліотеку Рthread, libpthread.so, необхідно розмістити в каталог, в якому зберіга­є­ться системна стандартна бібліотека, як правило це /usr/lib. Якщо вона буде знаходитися в нестандартному каталозі, то для пошуку компілятора в заданому каталозі до пошуку в стандартних, використайте опцію –L. За командою

g++ -o blackboard – L / src / local / lib blackboard.cpp – lpthread

Закінчені програми, що подаються в лекціях супроводжуються профі­лем. Профіль програми містить такі спеціальні відомості по її реалізації, як нео­бхідні заголовки та бібліотеки, а також інструкції по компіляції та компоновці. Профіль програми також містить розділ зауважень, зі спеціальною інформаці­єю, яку необхідно враховувати при виконанні програми.

– Конец работы –

Эта тема принадлежит разделу:

Лекція 6 Розбиття програм на множину потоків

На сайте allrefs.net читайте: Лекція_6.

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Бібліотека Pthread

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Розбиття програм на множину потоків
· Визначення, анатомія та планування потоку; · моделі створення та функціонування потоку; · бібліотека Pthread · а · Якщо робота підпрограм в програмі є

Визначення та контекстні вимоги потоку
Під потоком розуміємо частину коду програми, що виконується в UNIX- або Linux-процесі, яка може бути регламентована певним чином. Затрати обчи­с­лювальних ресурсів, пов’язаних з створенням потоку,

Планування потоків
Коли підходить час для планування процесу, процесор приймає один з його потоків. Якщо процес має тільки один потік, то власне він (тобто основний потік) призначається процесору. Якщо процес містить

Моделі створення і функціонування потоків
Мета потоку – виконати певну роботу від імені процесу. Якщо процес містить декілька потоків, кожен потік виконує деякі підзадачі як частини зага­льної задачі, що виконується процесом. Потокам делег

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги