{ my @cc = (); sub cc(&) { my ($sub) = @_; push @cc, $sub; } sub cc_run() { while (my $sub = shift @cc) { $sub->(); sleep 1; } } } sub first { my ($thread) = @_; print "$thread: 1 first\n"; cc { third($thread) }; } sub second { my ($thread) = @_; print "$thread: 2 second\n"; cc { fourth($thread) }; } sub third { my ($thread) = @_; print "$thread: 3 third\n"; cc { first($thread) }; } sub fourth { my ($thread) = @_; print "$thread: 4 fourth\n\n"; cc { second($thread) }; } cc { first("+") }; cc { second("*") }; cc_run;
четверг, 27 сентября 2012 г.
Very simple Multithreading with Continuation-passing style
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий