供参考
from multiprocessing import Pool import time def function(index): print(f'Start process: {index}') time.sleep(3) print(f'End process {index}') if __name__ == '__main__': pool = Pool(processes=3) for i in range(100): pool.apply_async(function, args=(i,)) print('Main Process started', sep=' ') pool.close() pool.join() print('Main Proess ended')
100个进程需要执行,但是最多同时执行3个进程。
# map方法的使用 # 第一个参数就是要启动的进程对应的执行方法 # 第二个参数是一个可迭代对象,其中的每个元素会被传递给这个执行方法 from multiprocessing import Pool import urllib.request import urllib.error def scrape(url): try: urllib.request.urlopen(url) print(f'URL {url} Scraped') except (urllib.error.HTTPError, urllib.error.URLError): print(f'URL {url} not Scraped') if __name__ == '__main__': pool = Pool(processes=3) urls = [ 'http://www.baidu.com', 'http://www.meituan.com/', 'http://blog.csdn.net/', 'http://xxxyxxx.net' ] pool.map(scrape, urls) pool.close()