Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Системное программирование > Передача данных и синхронизирование потоков |
Автор: Arius 4.8.2008, 17:35 |
Привет всем! Есть небольшой вопрос новичка в пёрле такая трабла есть два потока и переменная в основном потоке она увеличивается на 1 а в дочернем выводиться на экран так вот во втором потоке она пустая вот код use threads; use threads::shared; use Time::localtime; use IO::Socket; my $owner; my $ping = threads->create(\&ping_thread); while(1) { $owner = $owner + 1; print "owner in main thread is: ", $owner , "\n"; sleep(1); } sub ping_thread { my $terminated = 0; while($terminated == 0) { my $datetime = localtime (time); printf "Time is: %02d:%02d\n", $datetime->hour(), $datetime->min(); print "owner in thread is: ",$owner,"\n"; sleep(1); } } результат: owner in main thread is: 1 Time is: 17:34 owner in thread is: owner in main thread is: 2 Time is: 17:34 owner in thread is: owner in main thread is: 3 Time is: 17:34 owner in thread is: owner in main thread is: 4 Time is: 17:34 owner in thread is: owner in main thread is: 5 Time is: 17:34 owner in thread is: owner in main thread is: 6 Time is: 17:34 owner in thread is: owner in main thread is: 7 Time is: 17:34 owner in thread is: может нужна какая синхронизация например как в си++ через мутексы симофоры или ивенты подскажите кто знает в чём проблема |
Автор: nitr 4.8.2008, 17:58 | ||
может объявить
Добавлено через 22 секунды ;) |
Автор: Arius 4.8.2008, 18:20 |
Спасибо огромное а то бился об стенку : ![]() |