作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个子例程,我想与Coro
并行执行:
use strict;
use warnings;
use Coro;
sub mysub {
my ($in) = @_;
print "$in \n";
foreach my $i (0..100000000){
$i=$i+1;
}
return 1;
}
for (
( async{ mysub "A" } ),
( async{ mysub "B" } ),
( async{ mysub "C" } ),
( async{ mysub "X" } ),
( async{ mysub "Y" } )
) {
$_->join;
}
AnyEvent::Socket
)使并行执行成为可能,但是如何在我的简单示例中使这项工作有效?
mysub
的参数,但在下面的示例中却没有传递?
my @letters = ("A", "B", "C", "X", "Y");
my @in = map { (async {mysub $_ }) } @letters;
for ( @in ) {$_->join};
最佳答案
Coro是一个协作式多任务处理系统。只有在程序显式地将线程割让给另一个线程时,或者在等待Coro-aware调用中的某个事件而将其阻塞时,线程才会将其让给另一个CPU。
例如,以下内容将并行等待HTTP响应:
use Coro qw( async );
use LWP::Protocol::AnyEvent::http qw( );
use LWP::UserAgent qw( );
...
for my $url (@urls) {
async { process( $ua->get($url) ) };
}
...
关于multithreading - 与Coro并行运行perl子例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735251/
当此计数器被另一个计时器事件(stop_future)中断并完成时,我无法清除下面的 count_timer( sleep )。 import asyncio import datetime from
我对 perl 相对较新,甚至对 perl 中的线程也较新。我有一个 perl 脚本,它从 3 个不同的来源获取输入。 (2 个 LDAP 查询和一个不总是存在的文件)因为某些部分可能比其他部分花费更
我们正在进行的项目使用 Coro 进行异步处理,不幸的是它太大了,无法在不久的将来离开 Coro。我们遇到了竞争条件,其中具有惰性属性的对象在线程出于某种原因放弃的构建器内调用该惰性属性的构建器,然后
我是一名优秀的程序员,十分优秀!