|  |      1ryd994      2014-12-27 13:54:33 +08:00 via Android 看你是什么程序了,如果是计算密集那确实Gil限制单线程,不过如果是IO密集的话不成问题,还是可以当多线程用的 | 
|  |      2ShiehShieh OP @ryd994 嗯,这个我知道的,python多线程适合IO密集型。 | 
|  |      3imn1      2014-12-27 13:56:02 +08:00 前两句对,最后一句不对 没什么好例子,等其他大神 只玩过多进程调用wget,三句:载入multiprocessing.pool.Pool,一个wget命理的list,然后map()搞定 | 
|  |      4imn1      2014-12-27 13:57:52 +08:00 切,命令打成命理了 | 
|  |      5bigtan      2014-12-27 14:02:37 +08:00  3 http://segmentfault.com/blog/caspar/1190000000414339 博主可以看看这个,这个很有意思,效果也不错。我在自己的一篇博文里面试过。 http://segmentfault.com/blog/bigtan/1190000000486961 | 
|  |      6yakczh      2014-12-27 15:19:09 +08:00 多线程有GIL 多进程数据共享和同步麻烦 只有等协程 | 
|  |      7skybr      2014-12-27 15:34:33 +08:00 Python的多线程能用到多核, 只要在库里释放GIL锁, 像IO、lxml、numpy之类的都能通过多线程调用多核. | 
|  |      8ShiehShieh OP @skybr 原来如此,怪不得我跑numpy的时候cpu占用会超过100% T-T,但那还是需要人为去释放GIL是吧?默认多线程是无法发挥多核的是吗? | 
|  |      9ShiehShieh OP @bigtan 文章看完了,收获颇丰。谢谢。 | 
|  |      10ShiehShieh OP @bigtan 我看了看你的文章,我觉得是因为本身html分析这一部分计算量并不大,主要是IO。 线程池和进程池都解决了IO阻塞的问题,但是由于本身就不是cpu密集型的任务,所以进程池方法并没有明显的优势。运行时间都在网络下载这些地方了。 | 
|  |      11ChanneW      2014-12-27 19:48:16 +08:00  1 如果用 Go 重写 Python 的解释器, GIL 问题会不会有改善? |