The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Использование общей памяти между двумя Perl процессами (ipc perl proccess share lock)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: ipc, perl, proccess, share, lock,  (найти похожие документы)
Date: Wed, 04 Aug 2004 18:03:56 +0600 From: Yury Kopyl <hrg@promekbank.ru.> Newsgroups: ftn.ru.perl Subject: Использование общей памяти между двумя Perl процессами KT> Есть ещё http://search.cpan.org/~shay/Win32-SharedFileOpen-3.18/ KT> Есть другой простой способ - открываешь отображаемый файл двумя KT> процессами, заботишься о блокировках, и всё. Если надо шарить память только между родителем и потомками, то поможет слежующее ---- огрызок старого запылившегося файла --- use strict; use Data::Dumper; use Carp; use IO::Handle; my $THREAD_COUNT=4; print "main started\n"; $|=1; my @pids; foreach my $i (1..$THREAD_COUNT){ $pids[$i]->{READER}=IO::Handle->new; $pids[$i]->{WRITER}=IO::Handle->new; $pids[$i]->{READER}->autoflush(1); $pids[$i]->{WRITER}->autoflush(1); pipe ($pids[$i]->{READER},$pids[$i]->{WRITER}); my $pid=fork; if ($pid){ $pids[$i]->{WRITER}->close; $pids[$i]->{pid}=$pid; } else { croak "$!" unless (defined($pid)); $pids[$i]->{READER}->close; my $handle=$pids[$i]->{WRITER}; start_thread(); #thread body $pids[$i]->{WRITER}->close; exit; }; }; foreach my $i (1..$THREAD_COUNT){ my $handler=$pids[$i]->{READER}; while (my $str=<$handler>){ read smth... }; $pids[$i]->{READER}->close; waitpid $pids[$i]->{pid},0; }; print "main finished\n";

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру