擅长:python、mysql、java
<p>您启动的每个线程都有一个线程堆栈大小,即8KB
Linux系统中的默认值(请参见<code>ulimit -s</code>),因此线程所需的内存总量将超过20 GB。在</p>
<p>您可以使用一个线程池,例如10个线程;当一个
它已经完成了它的工作,它还有另一个任务要做。在</p>
<p>但是:一般来说,运行比CPU核心更多的线程是无稽之谈。所以我的
建议停止使用线程。您可以使用<a href="http://www.gevent.org" rel="nofollow">gevent</a>这样的库来
在不使用操作系统级线程的情况下执行完全相同的操作。在</p>
<p>gevent的好处是猴子修补:你可以分辨出<a href="http://www.gevent.org" rel="nofollow">gevent</a>
为了改变Python标准库的行为,这将使
透明地进入“greenlet”对象(参见<a href="http://www.gevent.org" rel="nofollow">gevent</a>文档
更多细节)。<a href="http://www.gevent.org" rel="nofollow">gevent</a>提出的并发类型是
特别适合于密集的I/O。在</p>
<p>在代码中,只需在开头添加以下内容:</p>
<pre><code>from gevent import monkey; monkey.patch_all()
</code></pre>
<p>上不能同时打开超过1024个文件描述符
默认情况下是Linux系统(请参见<code>ulimit -n</code>),因此您必须增加
如果您希望同时打开2700个文件描述符,则可以使用此限制。在</p>