Perl中的非阻塞/异步执行
有没有办法在Perl中实现非阻塞/异步执行(不使用
fork() ?)?
我以前是一个Python开发人员多年,Python有一个非常好的“Twisted”框架,允许这样做(使用DEFERREDs.当我运行搜索,看看Perl中有没有什么可以做同样的事情,我遇到了POE framework – 似乎“接近”我正在寻找的东西,但是…花了一些时间阅读文档和“玩”代码后,我反对“墙” – 这是以下限制(从POE::Session文档):
这个限制本质上是违反了异步/并行/非阻塞执行的目的 – 通过限制在任何给定时刻只执行一个回调(代码块).没有其他回调可以开始运行,而另一个已经运行! 那么… Perl有什么办法可以实现多任务(并行,非阻塞,异步执行代码),而不需要 解决方法
Coro是POE和线程之间的混合.从阅读它的CPAN文档,我认为IO :: Async执行真正的异步执行.
threads也可以使用 – 至少Padre IDE成功使用它们.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |