进程和线程
进程是程序运行的实例,就是说你编写的程序在运行时系统为其开启一个进程。线程才使用系统调度的基本单位,多任务的执行是依靠线程的调度。创建一个进程的时候,除了分配资源后还创建了一个主线程,在主线程中可以创建出其它线程。同一个进程下的线程是共享进程资源的。进程之间的资源是彼此独立的。实际操作中要根据需求是创建进程还是创建线程。
1.创建进程
1.1 使用multiprocessing 模块创建进程
该模块中的Process 类进行创建一个线程。其中join()是等待一个进程执行结束。创建进程示例如下图:
15-1
1.2 使用Process的子类创建进程
即自己定义一个类继承Process类,创建进程的时候使用子类启动一个进程。
如下图所示。
15-2
15-3
执行结果如下图:
15-4
1.3 使用进程池创建进程
使用进程池,就是说进程池中定义最大可以执行的任务个数,如果进程池的任务个数已经满了。则要等待其中一个进程结束之后才能执行下一个进程。这样创建的进程是按照进程池最大的进程个数进行执行的。如下图一次最大执行3个进程,这3个进程中的一个执行完成后就会创建新的进程进行执行。
15-5
15-6