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 1
一楼正解,另外在传递函数对象时要时刻注意,不要加括号,加了括号就是执行这个函数,而不是传递函数对象。
|
3
dawnzhu OP @itskingname 是的,没看到这个错误,谢谢哈
|
4
dawnzhu OP @1462326016 对对,没注意到这里,谢谢大佬指点
|