Как я могу разделить объект между потоками в Perl? - PullRequest
2 голосов
/ 10 ноября 2009

Я искал связанную тему, но все еще не могу решить проблему ...

use threads;
my $person = new Person( 'Name' => "yy");

my $udp_thread = threads->new(\&udp_func);

while(1)
{
    $person->working();
}

sub udp_func 
{
    #Can't call method "setName" on an undefined value:
    $person->setName();             
}

Как я могу посетить объект $ person в новой теме? Большое спасибо !!

1 Ответ

4 голосов
/ 10 ноября 2009

Вы смотрели на расширение threads :: shared Perl?

threads :: shared - расширение Perl для совместного использования структур данных между потоками. По умолчанию переменные являются частными для каждого потока, и каждый вновь созданный поток получает личную копию каждой существующей переменной. Этот модуль позволяет вам обмениваться переменными между различными потоками (и псевдо-вилками на Win32). Используется вместе с модулем потоков. Этот модуль поддерживает совместное использование только следующих типов данных: скаляры и скалярные ссылки, массивы и ссылки на массивы, а также хэши и ссылки на хэш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...