zoukankan      html  css  js  c++  java
  • 进程

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

    多道技术:(两大技术点)
    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即终止运行

    互斥锁

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

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

  • 相关阅读:
    Java实现点击导出excel页面遮罩屏蔽,下载完成后解除遮罩
    文档API生成神器SandCastle使用心得
    Stimulsoft报表操作笔记(一):统计
    在线office文档编辑NTKO使用心得
    oracle与sqlserver利用函数生成年月日加流水号
    解决同一页面中两个iframe互相调用jquery,js函数
    jquery配合.NET实现点击指定绑定数据并且能够一键下载
    页面的div中有滚动条,js实现刷新页面后回到记录时滚动条的位置
    关于datagrid中控件利用js调用后台方法事件的问题
    关于datagrid中数据条件颜色问题
  • 原文地址:https://www.cnblogs.com/layerluo/p/9594139.html
Copyright © 2011-2022 走看看