• 进程


    进程指的是一个正在进行/运行的程序,进程是用来描述程序执行过程的虚拟概念
    进程的概念起源于操作系统,进程是操作系统最核心的概念,操作系统其它所有的概念都是围绕进程来的
    并发:多个任务看起来是同时运行的
    串行:一个任务完完整整的运行完毕,才能运行下一个任务

    多道技术:(两大技术点)
    1,空间上的复用:多个任务复用内存空间
    2.时间上的复用:多个任务复用cpu时间
    ①一个任务占用cpu时间过长会被操作系统强行剥夺走cpu的执行权限:反而会降低效率
    ②一个任务遇到io操作会被操作系统强行剥夺走cpu的执行权限:比起串行执行可以提升效率
    ps:复用=》共享/共用

    开启进程有两种方式
    方式一:
      


    方式二:

    join方法 :先让子进程运行

    进程之间内存空间的相互隔离

    进程之间的内存是一种物理隔离的状态,相互之间的数据是无法共享的

    进程对象其他相关的属性或方法

    getpid 是获取id getppid就是获取父进程的id  当前的获取的是 pycharm的进程id

    僵尸进程与孤儿进程

    僵尸进程是有害的,一个进程产生了子进程 而这个子进程完成了自己的事情退出了,但是这个进程只管生产子进程,那么系统运行一段时间后 就会存在很多僵死进程,这些僵死进程仍在系统中运行

    孤儿进程 就是把生产子进程的进程杀死后 生产出来的子进程就会成为孤儿进程  那么就会被init接管 定期的进行清除

    守护进程

    守护进程就是 一旦父进程死亡 子进程马上跟着结束

    一:守护进程会在主进程代码执行结束后就终止

    二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have children

    进程之间是互相独立的,主进程代码运行结束,守护进程随即终止

    p.daemon一定要在p.start()前设置,设置p为守护进程,禁止p创建子进程,并且父进程代码执行结束,p即终止运行

    互斥锁

    进程之间是不共享数据的,如果在同一个文件上访问没有问题,但是进行操作就会错乱,所以就要用到互斥锁

    加锁能够帮助我们让多个进程同时访问一个文件,同一时间只能有一个任务可以修改,就相当于串行的修改,虽然速度变慢 但是保障了数据的安全性

  • 相关阅读:
    Python进阶(二)
    python基础(四)
    Python基础(三)
    python基础(二)
    Python基础(一)
    backbone之extend方法(刚明白了点)
    js中url相关
    bootstrap导航、导航条及导航翻页相关详解
    bootstrap中css组件(除导航条)
    bootstrap基础排版优化
  • 原文地址:https://www.cnblogs.com/layerluo/p/9594139.html
Copyright © 2020-2023  润新知