叙述起来有些麻烦,大致说一下:主程序中我开辟了进程池,然后我在其中一个进程中开辟个线程池,利用该线程池并发请求页面!但是,我发现线程池的分配必须写到函数中,如果写到外边当作全局变量的话,程序就一直卡在那里,不知道是阻塞了?还是无限的“递归”下去了?总之不出结果。
虽然我知道,线程池不能在主程序中分配好然后作为参数传给某个进程中使用,毕竟是进程嘛。一个道理,import的时候其实全局变量的线程池已经分配好了,然后你在进程中调用应该跟刚才说的是一个道理。我不明白的是为什么会一直运行....为什么不是报错?
代码贴在下边:
segmentfault不支持上传文件么??只能大家copy代码执行了。
主程序:开辟进程池,其中某个进程调用另一个文件的抓取方法,将url列表作为参数:
import json
import urllib_fetcher as ulib_fetch
#from multiprocessing.dummy import Pool as ThreadPool
from multiprocessing import Pool as ProcessPool
g_url_list = [
'http://segmentfault.com/q/1010000000742958',
'http://segmentfault.com/q/1010000003793646',
'http://segmentfault.com/q/1010000003757654',
'http://tieb