多进程
multiprocessing模块提供了一个Process类代表一个进程对象。 在创建子进程时,只需要传入一个执行函数 和 函数的参数,即可创建一个 Process 实例。 用start()
方法启动此进程即可。
如果要启动大量的子进程,可以用进程池 pool
的方法批量创建子进程。Pool
对象调用join()
方法会等待所有子进程执行完毕,在调用之前必须先调用close()
,在调用完close()
后就不能继续添加新的Proess
了。
Pool
的默认大小是CPU的核数。
进程间通信
subprocess
模块可以非常方便地启动一个子进程,然后控制其输入与输出 。
Python的multiprocessing
模块包装了底层的机制,提供了Queue
,Pipes
等多种方式交换数据。
多线程
使用模块 threading
启动一个线程就是将一个函数传入并创建 Thread
实例,然后调用Start
执行。