if __name__ == "__main__": initial_time = time.time() # 程序开始时间 url_pool = initialize_database() # 初始化数据库 search_key = [ "BALENCIAGA 包", "BALLY 包", "BOTTEGA VENETA 包", "BURBERRY 包", "BVLGARI 包", "CELINE 包", "CHANEL 包" ] jds = Jd_Spider(url_pool, 'jd_info') # 实例化类 p_list = [] p_jds = multiprocessing.Process(jds.run(), args=()) p_list.append(p_jds) for key in search_key: p = multiprocessing.Process(search_keyword.search_sku, args=(key,)) p_list.append(p) for P_step in p_list: P_step.start() for p_step in p_list: p_step.join() print("最终用时:", time.time() - initial_time) # 打印程序最终用时
我创建多个进程,运行程序,总是会执行 jds_run() 这个函数,search_key_word.search_sku 没有得到并发执行,有大佬清楚其中缘由吗
![]() | 1 itskingname 2020-12-21 18:11:46 +08:00 |
![]() | 2 1462326016 2020-12-21 18:37:36 +08:00 ![]() 一楼正解,另外在传递函数对象时要时刻注意,不要加括号,加了括号就是执行这个函数,而不是传递函数对象。 |
![]() | OP @itskingname 是的,没看到这个错误,谢谢哈 |
![]() | 4 dawnzhu OP @1462326016 对对,没注意到这里,谢谢大佬指点 |