2
我正在使用Thread::Pool::Simple
进行多线程。 我有几个问题,这是相当笼统的多线程,我猜:如何使用Perl的`Thread :: Pool :: Simple`?
我的每个线程可能会死,如果意想不到的事情发生。这完全被我接受,因为这意味着我的一些断言是错误的,我需要重新设计代码。目前,当任何线程死亡主程序(调用线程)也死了,产生类似:
Perl exited with active threads:
0 running and unjoined
0 finished and unjoined
4 running and detached
- 这些“运行和超然” 僵尸?他们在任何 的方式是否“危险”?如果任何线程死亡,有没有办法杀死它们的所有 ? 这种 方案的常见解决方案是什么?
- 一般来说,我的工作是独立的。 但是,我将它们中的每一个作为 参数传递一个独特的散列,它是 从一个大散列哈希哈希。 该线程可能会更改此 个人散列(但它不能得到 大散列 - 它甚至不知道 知道它)。因此,我想我 不需要任何锁等。我是否 缺少什么?
重新锁定 - 以及如果我将大散列和关键字一起传递,并且线程仅使用由该关键字指向的内部散列,该怎么办? – 2010-09-20 11:03:32
问题问'Thread :: Pool :: Simple',但这个答案不使用这个模块。 – CJ7 2016-12-04 23:40:25
@ CJ7,答案不使用'Thread :: Pool :: Simple',因为它不是特定于该模块的。他询问的消息是由Thread Thread :: Pool :: Simple构建的核心'threads'模块生成的。 – cjm 2016-12-05 05:50:59