Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Perl для IP-Телефонии (34 – Многопоточные приложения, часть 10)

предыдущая часть ««»» следующая часть

Следующие пять элементов представляют собой функции, которые должны быть явно импортированы из модуля Thread.

use Thread qw (async yield cond_wait cond_signal cond_broadcast) ;

$thread = async {BLOCK}

Использование функции async () — альтернативный способ создания нового объекта Thread. Данная функция принимает не ссылку на подпрограмму и ее параметр, как метод new (), а блок кода, который становится телом нового потока.  К объекту Thread, возвращенному функцией async () можно подключаться с помощью метода join ( ) , точно так же как при использовании потока, созданного с помощью метода new ().

yield ()

Применение функции yields представляет собой способ, с помощью которого поток может сообщить интерпретатору Perl, что конкретный участок кода может использоваться для переключения контекста потока. Поскольку потоки в различных операционных системах реализованы по-разному эта функция может оказывать (или не оказывать) конкретное воздействие. Обычно нет необходимости вызывать функцию yield () для обеспечения параллельного выполнения, но иногда она может помочь более равномерно распределить интервалы времени выполнения между потоками.

cond_wait ($variable)

Функция cond_wait () ожидает поступления сигнала об изменении состояния переменной. Эта функция принимает в качестве параметра заблокированную переменную, освобождает блокировку и переводит поток, владевший блокировкой, в состояние ожидания до тех пор, пока не поступит сигнал об изменении состояния переменной от другого потока, вызвавшего функцию cond_signal () или cond_broadcast (). Перед выполнением возврата функция cond_wait () снова блокирует переменную.

Condo_signal($variable)

Функция cond_signal () сигнализирует об изменении состояния переменной $ variable, что приводит к возобновлению работы потоков, ожидающих этого сигнала. Если ни один поток не ожидает этого сигнала, то вызов данной функции не приводит к выполнению каких-либо действий. Если сигнала об изменении состояния переменной ожидает несколько потоков, то разблокируется один (и только один) из них. Невозможно предсказать заранее, какой именно из ожидающих потоков будет разблокирован.



2014-06-21 18:05:32

предыдущая часть ««»» следующая часть


ДОКУМЕНТАЦИЯ VoIP


НОВОСТИ СВЯЗИ


РЕКОМЕНДУЕМ

 
[ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
Запрещается копировать материалы сайта без уведомления авторов.
С вопросами и предложениями обращайтесь со страницы контактов
Copyright c 1999-2024 IPTop.Net
 
IP-Телефония, Интернет Телефония, Компьютерная телефония