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

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

Остановка потока

Поток может прерваться несколькими способами. Первый способ предполагает возвращение управления из основной процедуры потока start_routine. Второй способ - вызов pthread_exit(), возвращающий статус выхода. Третий способ - прерывание потока с помощью функции pthread_cancel().

Функция void pthread_exit(void *status) прерывает выполнение потока точно так же, как функция exit() прерывает процесс:

#include <pthread.h>

int status;

 /* выход возвращает статус status */

pthread_exit(&status);

Функция pthread_exit() заканчивает выполнение вызвавшего ее потока. Все привязки данных для этого потока освобождаются. Если вызывающий поток не отделен, то ID этого потока и статус выхода (status) сохраняются, пока поток блокирован. В противном случае, статус игнорируется, а ID потока может быть немедленно использован для другого потока.

Функция pthread_cancel() предназначена для прерывания потока:

#include <pthread.h>

pthread_t thread;

int ret;

ret = pthread_cancel(thread);

Способ обработки запроса на прерывание потока зависит от состояния указанного потока. Две функции, pthread_setcancelstate() и pthread_setcanceltype(), определяют это состояние; функция pthread_cancel() возвращает 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