Multithreading 未定义的子程序&;main::解锁
我写道:Multithreading 未定义的子程序&;main::解锁,multithreading,perl,Multithreading,Perl,我写道: use threads; lock($lock); cond_wait($full,$lock) while($threads == $max_thread); $threads++; unlock($lock); 运行此代码后,我收到错误信息: Undefined subroutine &main::unlock called at ./pages.pl line 222, <FH> line 1.` Unde
use threads;
lock($lock);
cond_wait($full,$lock) while($threads == $max_thread);
$threads++;
unlock($lock);
运行此代码后,我收到错误信息:
Undefined subroutine &main::unlock called at ./pages.pl line 222, <FH> line 1.`
Undefined子例程&main::unlock在./pages.pl第222行第1行调用`
如何解决此问题?
请注意,没有unlock()函数,这是解锁
变量的作用是允许它超出范围
所以
$threads>=$max\u thread
将更安全(更可靠地处理bug)thx!我也这么想。。。但最后我还是写了==无论如何。。。但是现在我重新考虑写>=因为你的建议。
{
lock($lock);
cond_wait($full,$lock) while($threads == $max_thread);
$threads++;
}