sync.t

来自「UNIX下perl实现代码」· T 代码 · 共 61 行

T
61
字号
use Thread;$level = 0;sub single_file : locked {    my $arg = shift;    $level++;    print "Level $level for $arg\n";    print "(something is wrong)\n" if $level < 0 || $level > 1;    sleep 1;    $level--;    print "Back to level $level\n";}sub start_bar {    my $i;    print "start bar\n";    for $i (1..3) {	print "bar $i\n";	single_file("bar $i");	sleep 1 if rand > 0.5;    }    print "end bar\n";    return 1;}sub start_foo {    my $i;    print "start foo\n";    for $i (1..3) {	print "foo $i\n";	single_file("foo $i");	sleep 1 if rand > 0.5;    }    print "end foo\n";    return 1;}sub start_baz {    my $i;    print "start baz\n";    for $i (1..3) {	print "baz $i\n";	single_file("baz $i");	sleep 1 if rand > 0.5;    }    print "end baz\n";    return 1;}$| = 1;srand($$^$^T);$foo = new Thread \&start_foo;$bar = new Thread \&start_bar;$baz = new Thread \&start_baz;$foo->join();$bar->join();$baz->join();print "main: threads finished, exiting\n";

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?