上一节里面讲到了什么是多进程,概念问题,直接看上一节多线程就可以。多进程主要用到的是
multiprocessing库。主要的代码流程如下
1、导入库:
import multiprocessing
2、创建进程:
t1 = multiprocessing.Process(target=test1)
t1.start()
import multiprocessing
import time
def test1():
print("----1----")
time.sleep(1)
def test2():
print("----2----")
time.sleep(1)
def main():
t1 = multiprocessing.Process(target=test1)
t2 = multiprocessing.Process(target=test2)
t1.start()
t2.start()
if __name__ == "__main__":
main()
多进程之间的通信问题,前面有用到 socket进行通信。
queue 队列是进程间通信的另一种方式。队列的特点是先进先出的特别。
1、导入库:
import multiprocessing
2、创建队列:
q = multiprocessing.Queue()
3、创建进程,并且将队列的引用当作实参进行传递
p1 = multiprocessing.Process(target=download_from_web, args=(q,))
args=() 传入的是元组数据,所以要加上 “,”
4、放入数据到队列
q.put()
5、从队列中取出数据
q.get()
6、判断队列是否为空 返回值为: True 或者 False
q.empty()
7、判断队列是否为满 返回值为: True 或者 False
q.full()
具体案例如下
import multiprocessing
def download_from_web(q):
"""模拟下载数据"""