廖雪峰Python学习笔记——多进程
主要内容来自廖雪峰的官方网站
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868323401155ceb3db1e2044f80b974b469eb06cb43000
进程和线程
基本概念:不管是单核还是多核cpu,操作系统运行多任务时会轮流让各个任务交替执行(联系《o s》中各种调度算法)。每个任务就是一个进程process,一个进程内部要干很多事,比如word中可以打字、拼写检查、打印等,每个子任务就是线程Thread
多任务的实现有3种方式:
- 多进程模式;
- 多线程模式;
- 多进程+多线程模式。
特点:各个任务之间需要沟通和协调。
意义:比如看电影时需要一个线程播放视频,一个线程播放音频。
多进程(multiprocessing)
引:
Unix/Linux操作系统提供了一个
调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。fork()
系统调用,fork()
子进程永远返回0
,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()
就可以拿到父进程的ID。
在py程序中创建子进程
方法:利用os模块中的fork()和getppid()方法