擅长:python、mysql、java
<p>如错误消息所述,您不能通过pickle传递<code>multiprocessing.Value</code>。但是,您可以使用<a href="https://docs.python.org/2.7/library/multiprocessing.html#multiprocessing.managers.SyncManager.Value" rel="nofollow">^{<cd2>}</a>:</p>
^{1}$
<p>以下是一些其他注意事项:</p>
<ol>
<li>在750个进程中使用<code>Pool</code>不是一个好主意。除非你使用的服务器有数百个CPU核心,否则你的机器就会被它压垮。使用更少的过程会更快,对机器的压力更小。更像<code>2 * multiprocessing.cpu_count()</code>。在</li>
<li>作为最佳实践,您应该显式地将需要使用的所有共享参数传递给子进程,而不是使用全局变量。这增加了代码在Windows上运行的可能性。在</li>
<li>看起来所有的<code>send_request*</code>函数的作用几乎完全相同。为什么不创建一个函数并使用一个变量来决定使用哪个<code>socbindtry.BindableHTTPHandler</code>?这样做可以避免代码重复。在</li>
<li>递增<code>error_count</code>的方式不是进程/线程安全的,而且容易受到竞争条件的影响。您需要使用锁来保护增量(正如我在上面的示例代码中所做的那样)。在</li>
</ol>