进程和并发

Day41 进程和并发免费看

multiprocess模块,concurrent模块,守护进程实现(POSIX兼容)

08-28侠课岛    基础入门       

后端/后端/Python 由浅入深入门 20     0     239

总结

1.multiprocess模块

  • Python中提供multiprocess模块实现多进程并发;

  • multiprocessing支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、Lock等 组件;

  • 可以multiprocessing.Process对象来创建一个进程,该进程可以运行在Python程序内部编写的函数;

  • process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建,有start()run()join()的方法;

2.进程并发:concurrent模块

concurrent模块能够提供一个future的实例对象,实例对象提供了线程的执行器和进程的执行器;

  • submit():返回一个Future对象;

  • result():查看调用的返回结果;

  • done():如果任务成功执行或任务取消返回True;

  • cancel():取消任务;

  • running():如果任务正在执行返回True;

  • exception(): 获取执行抛出的异常;

3.守护进程实现(POSIX兼容)

  • 在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期 性的执行某种任务或等待处理某些发生的事件;

  • 由于在linux中,每个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终 端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭;

  • 但是守护进程却能突破这种限制,它脱离于终端并且在后台运行,并且它脱离终端的目的是为了避免进程在运 行的过程中的信息在任何终端中显示并且进程也不会被任何终端所产生的终端信息所打断,它从被执行的时候 开始运转,直到整个系统关闭才退出;

守护进程实现的步骤:

  • 父进程fork出子进程并exit退出;

  • 子进程调用setsid创建新会话;

  • 子进程调用系统函数chdir将根目录"/"成为子进程的工作目录;

  • 子进程调用系统函数umask将该进程的umask设置为0;

  • 子进程关闭从父进程继承的所有不需要的文件描述符;

对 os.fork( )的理解:

  • os.fork()返回两个值,一个是在当前父进程返回的,一个是在子进程中返回的;

  • 子进程返回的是0,父进程返回的是子进程的pid;

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

20

本课评分:
  •     非常好
难易程度:
  •     适中的

内容目录



|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?