?最近重学了一遍python的多线程和多进程,对类的属性和方法有了大彻大悟的感受。
线程在进程里面运行,多进程相当于打开多个QQ,线程相当于 QQ聊天界面收和发。
Queue()方法可以实现多进程的数据共享。
import multiprocessing
def download_data(q):
'''下载数据'''
data = [11,22,33,44,55,66]
for i in data:
q.put(i)
print("下载完成")
def analysis_data(q):
'''处理数据'''
waitting_analysis_data = list() #创建列表推荐用list
#从队列中获取数据
while True:
data = q.get()
waitting_analysis_data.append(data)
if q.empty():
break
print("waitting_analysis_data",waitting_analysis_data)
def main():
# 创建一个队列
q = multiprocessing.Queue() #不填数代表硬件支持最大的数,Q要大写
#多进程
q1 = multiprocessing.Process(target=download_data,args=(q,))
q2 = multiprocessing.Process(target=analysis_data,args=(q,))
q1.start()
q2.start()
if __name__ == '__main__':
main()
|