gpt4 book ai didi

perl - 发送/接收/开始/结束对 AnyEvent 的条件变量意味着什么?

转载 作者:行者123 更新时间:2023-12-01 12:59:07 25 4
gpt4 key购买 nike

我不知道这意味着什么,尽管我阅读了几个关于它的例子:

#!/usr/bin/perl
use strict;
use AnyEvent;

my $cv = AnyEvent->condvar( cb => sub {
warn "done";
});

for my $i (1..10) {
$cv->begin;
my $w; $w = AnyEvent->timer(after => $i, cb => sub {
warn "finished timer $i";
undef $w;
$cv->end;
});
}

$cv->recv;

谁能更详细地解释一下 send/recv/begin/end做?

更新
my $i = 1;
my $s = sub {
print $i;
};
my $i = 10;
$s->(); # 1

最佳答案

在您提供的代码中,condvar 用于防止程序过早退出。没有 recv ,程序将在任何计时器有机会触发之前结束。与 recv ,所有十个定时器必须在 recv 之前触发返回。
recv如果 send 会阻塞从未被调用过。当 send 时会解除阻塞叫做。
beginend是使用 send 的替代方法.当有那么多end一直打电话begin来电,send发生。

AnyEvent

关于perl - 发送/接收/开始/结束对 AnyEvent 的条件变量意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7762601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com