廖雪峰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()方法

 

posted @ 2017-09-05 22:34  IcarusYu  阅读(233)  评论(0编辑  收藏  举报