Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
name watchers bytes create invoke destroy comment
EV/EV 400000 224 0.47 0.35 0.27 EV native interface
EV/Any 100000 224 2.88 0.34 0.27 EV + AnyEvent watchers
CoroEV/Any 100000 224 2.85 0.35 0.28 coroutines + Coro::Signal
Perl/Any 100000 452 4.13 0.73 0.95 pure perl implementation
Event/Event 16000 517 32.20 31.80 0.81 Event native interface
Event/Any 16000 590 35.85 31.55 1.06 Event + AnyEvent watchers
IOAsync/Any 16000 989 38.10 32.77 11.13 via IO::Async::Loop::IO_Poll
IOAsync/Any 16000 990 37.59 29.50 10.61 via IO::Async::Loop::Epoll
Glib/Any 16000 1357 102.33 12.31 51.00 quadratic behaviour
Tk/Any 2000 1860 27.20 66.31 14.00 SEGV with >> 2000 watchers
POE/Event 2000 6328 109.99 751.67 14.02 via POE::Loop::Event
POE/Select 2000 6027 94.54 809.13 579.80 via POE::Loop::Select
sub thread_worker {
my $self = threads->self();
my $tid = $self->tid();
while( defined( my $job = $queue_job->dequeue() ) ) {
print STDERR "Worker($tid) has received task from Boss: $job\n";
# выполняем какую-нибудь работу...
#print STDERR "Worker($tid) has finished the task\n";
print STDERR "Worker($tid) has sleeped: ", scalar(localtime), "\n";
sleep 10;
print STDERR "Worker($tid) has woken up: ", scalar(localtime), "\n";
# скидываем все в одну коробку ;)
$queue_box->enqueue( "processed: $job" );
}
$queue_box->enqueue( undef );
}
Perl и GUI. Работа с потоками