Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Создание потока


Автор: OutlawZ 1.7.2010, 04:46
Доброгово времени суток, читаю про потоки в Perl, решил попробовать создать
пробный поток, но все время выдает ошибку. Пробовал три разных варианта создания
потока но все равно поток не хочет создаваться. 

Вот первый пример:
Код

use Thread 'async';

#Создать поток
$p1 = async {
 $one = 1;
  fast($one);
};

sub fast (\$){
 my $v = shift;
  return $$v;
}

$res = $p1->join();

print "1st return value scalar $res\n";

Ответ во время выполнения:
Цитата

Undefined subroutine &threads::new called at D:/Perl/lib/Thread.pm line 291.


Второй пример:
Код

use Thread;

$one = 1;
#Создать поток
$p1 = Thread->new(\&fast($one));

sub fast (\$){
 my $v = shift;
  return $$v;
}

$res = $p1->join();

print "1st return value scalar $res\n";

Цитата

Undefined subroutine &threads::new called at my.pl line 7.


Ну и последний вариант:
Код

use Thread qw(async);

$one = 1;
#Создать поток
$p1 = async {
&fast($one);
};

sub fast (\$){
 my $v = shift;
  return $$v;
}

$res = $p1->join();

print "1st return value scalar $res\n";


Не какой пример не хочет работать, хочу узнать кто сталкивался с такой проблемой и
как ее решил. 

P.S Я перешел на Windows 7 может в этом проблема?

Автор: DurRandir 1.7.2010, 10:49
Выкинуть текущую книжку и купить/скачать посвежее. Серьёзно. "Thread" - это модуль времён 5.5 и сейчас объявлен устаревшим и неподдерживаемым. Текущим модулем по работе с потоками является "threads".

Автор: OutlawZ 1.7.2010, 12:28
Буду знать а про книгу вы зря, Программирование на perl 3-е издание Ларри Уолла. 

Автор: noize 11.7.2010, 17:41
надеюсь, система не 64-х битная, иначе можете проблем огрести с этой многопоточностью

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)