The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Программирование в Linux" / Оглавление документа
next up previous contents
Next: Ожидание завершения потока Up: Потоки (threads) Previous: Потоки уровня ядра   Contents

Создание потока

Функция pthread_create() позволяет добавить новый поток управления к текущему процессу. Прототип функции:

int pthread_create(pthread_t *tid,

       const pthread_attr_t *tattr,

       void*(*start_routine)(void *), void *arg);

Когда атрибуты объекта не определены, они равны NULL, и поток, создаваемый по умолчанию, имеет следующие признаки: неорганиченность, неотделенность от процесса, стек с размером по умолчанию, приоритет родителя. Существует возможность также создать объект атрибутов потока с помощью функции pthread_attr_init(), а затем использовать этот объект для создания самого потока. Пример создания потока:

#include <pthread.h>

pthread_attr_t tattr;

pthread_t tid;

extern void *start_routine(void *arg);

void *arg;

int ret;

/* поведение по умолчанию*/

ret = pthread_create(&tid, NULL, start_routine, arg);

/* инициализация с атрибутами по умолчанию */

ret = pthread_attr_init(&tattr);

/* определение поведения по умолчанию*/

ret = pthread_create(&tid, &tattr, start_routine, arg);

Функция pthread_create() вызывается с атрибутом attr, определяющим необходимое поведение; start_routine - это функция, с которой новый поток начинает свое выполнение. Когда
start_routine завершается, поток завершается со статусом выхода, установленным в значение, возвращенное start_routine.

Если вызов pthread_create() успешно завершен, идентификатор созданного потока сохраняется по адресу tid.

Создание потока с использованием аргумента атрибутов NULL оказывает тот же эффект, что и использование атрибута по умолчанию: оба создают одинаковый поток. При инициализации tattr он обретает поведение по умолчанию; pthread_create() возвращает 0 при успешном завершении. Любое другое значение указывает, что произошла ошибка.



2004-06-22

АКЦИЯ! ПОДПИШИСЬ на журнал Linux Format до 31 января 2012 года и выиграй СУПЕРПРИЗ!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонус- объёмные наклейки на системный блок и подарки: с одним из первых выпусков журнала в 2012 году- диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Подробнее о проведении акции вы можете прочитать на странице сайта.


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList