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

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

Реклама

Perl для IP-Телефонии (39 – предобработка мультипроцессов, часть 38)

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

Все соответствующие предупреждения приведены в документах IPC::Shareable. Если несколько процессов попытаются одновременно изменить значение одной и той же разделяемой переменной, могут возникнуть некоторые проблемы. Несколько рискованной является даже такая простая операция, как $Н{‘key’ }++, поскольку сама операция ++ выполняется в несколько этапов: происходит выборка текущего значения, его наращивание и запись обратно в хеш. Если несколько процессом попытаются изменить это значение до того, как закончится выполнение операции, то все внесенные изменения будут перекрыты. Самым простым решением является блокировка хеша перед выполнением многоэтапной операции обновления и снятия блокировки после ее завершения. Если в качестве операционной системы установлена Windows , то разделяемая память может быть недоступна из среды Perl. Ниже показана общая схема.

tied(%Н)->shlock;

$Н{‘key’}++;

tied(%Н)->shunlock;

Метод tied ( ) возвращает ссылку на объект, которая хранится в самом IPC::Shareable. Этот объект имеет только два общедоступных метода: shlock () и shunlock () .Первый метод блокирует переменную так, чтобы к ней не могли получить доступ другие процессы, а второй — снимает блокировку. Эти методы не имеют непосредственного отношения к функции lock (), используемой в многопотоковой обработке, или к функции flock (), которая применялась ранее для упорядочения доступа к функции accept ().

 

Скалярные переменные также могут быть связаны с разделяемой памятью с использованием аналогичного интерфейса. Связанные массивы в настоящее время не поддерживаются. Ниже будет приведена новая версия адаптивного Web-cepeepa с предвари­тельным ветвлением, в которой используется модуль IPC::Shareable.



2014-12-18 23:04:53

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


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


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


РЕКОМЕНДУЕМ

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