mce_loop 之后创建线程

Thread creation after mce_loop

我想将 mce_loopthreads->create 创建的线程结合起来,但失败了。下面的简化脚本永远不会到达第二个打印行。为什么?

(如果我先创建线程,它会起作用,但在我的真实脚本中,这会使其他部分更加复杂)。

use MCE::Loop;

mce_loop { } (0);
print "OK\n";

threads->create (sub {});
print "never reached ..\n";

在 Håkon Hægland 发布的(后来删除的)示例的帮助下,我发现在我的简化示例中真正有用的是什么。我仍然不明白这种奇怪行为的原因。

use MCE::Loop;

mce_loop { } (0);
MCE->new ()->run; # this, but why?
print "OK\n";

threads->create (sub {});
print "never reached ..\n";