python多线程-进程
multiprocessing进程
import multiprocessing
import os
def worker1():
# printing process id
print("ID of process running worker1: {}".format(os.getpid()))
def worker2():
# printing process id
print("ID of process running worker2: {}".format(os.getpid()))
if __name__ == "__main__":
# printing main program process id
print("ID of main process: {}".format(os.getpid()))
# creating processes
p1 = multiprocessing.Process(target=worker1)
p2 = multiprocessing.Process(target=worker2)
# starting processes
p1.start()
p2.start()
# process IDs
print("ID of process p1: {}".format(p1.pid))
print("ID of process p2: {}".format(p2.pid))
# wait until processes are finished
p1.join()
p2.join()
# both processes finished
print("Both processes finished execution!")
# check if processes are alive
print("Process p1 is alive: {}".format(p1.is_alive()))
print("Process p2 is alive: {}".format(p2.is_alive()))
multiprocessing进程池
import multiprocessing
# 例如
def download(i):
try:
print(i)
os.chdir(path)
os.system("you-get " + i)
except:
print('error ' + i)
url1_list = ['', '', '']
if __name__ == '__main__':
pool = multiprocessing.Pool(processes = 4) # 最多同时四个进程,多余cpu核心数反而浪费资源
pool.map(download, url1_list) #dowmload--需要执行的函数,url_list前个函数的参数列表---注意是列表---
pool.close() # 关闭进程池,不在接受新进程
pool.join() # 等待子进程结束
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果