• 进程


     

    并发 : 遇到IO自动切换,能够提高效率的并发,分时:不一定能提高效率,只是让你的程序看起来在同时运行

    并行:多个cpu的基础上,才有并行的概念,真正的同时在运行

    进程三状态 : 就绪  运行  阻塞

    同步异步:提交任务的方式:

    异步 : 同时提交两个,两个任务都能够执行

    同步:同时提交两个任务,但是两个任务排队执行,一个一个来

    阻塞:程序遇到IO

    非阻塞:不阻塞

    异步非阻塞:*****  程序运行效率最高的

    进程的两种创建方式:

    From multiprocessing import Process

    P = Process(target=f1,args=(i,))  kwargs={‘形参名’:}

    p.start()

     

    If __name__ == ‘__main__’:

    创建进程的代码

     

    继承process:

    Class MyProcess(Process):

    Def xxxx(self):

    Print(‘来啦客官’)

     

    Def __init__(self,n):

    Super().__init__()

    Self.n = n

    Self.xxxx()

     

     

    Def run(self):

    Self.xxxx()

    Main

    P = MyProcess(‘xx’)

    P.start()

     

    Join: 主进程等待子进程执行结束,才从join的地方继续执行

    P = MyProcess(‘xx’)

    P.start()

    P.join()

    Print(主进程结束)

     

    For循环创建进程

    For i in range(10):

    P = MyProcess(‘xx’)

    1. start()  #就是给操作系统发送了一个创建进程的信号,之后创建进程执行进程什么执行进程都是操作系统来管理的

     

     

    今日内容:

    进程的其他方法

    进程id,进程名字,查看进程是否活着is_alive()  terminate()发送结束进程的信号

     

    僵尸进程和孤儿进程(了解)

     

    验证进程之间是空间隔离的

     

     

    守护进程:(**)

     

    进程锁(同步锁/互斥锁)  *****

    Loc = Lock()

    Loc.acquire()

    需要锁的代码

    Loc.release()

     

    With loc:

    需要锁的代码

     

    生产者消费者模型

     

    进程队列  ***** Queue()

    Q = Queue(5)

    Q.put()  #满了会等待

    Q.get()  #没有数据了会等待

    Q.qsize()

    Q.empty()  不可靠

    Q.full()不可靠  

    Q.get_nowait()  #不等待,但是报错

    Q.put_nowait()   #不等待,但是报错

     

    Joinablequeue:

     

     

  • 相关阅读:
    2017.2.12【初中部 GDKOI】模拟赛B组 T2:宿敌
    离散化介绍
    2017.2.12【初中部 GDKOI】模拟赛B组 T1:圆盘染色
    2017.2.12【初中部 GDKOI】模拟赛B组
    2017.2.11【初中部 GDKOI】模拟赛B组 T4:摧毁巴士站
    2017.2.11【初中部 GDKOI】模拟赛B组
    2017.2.11【初中部 GDKOI】模拟赛B组 T3:空间航行
    2017.2.11【初中部 GDKOI】模拟赛B组 T2:软件公司
    2017.2.11【初中部GDKOI】模拟赛B组 T1:最小比例
    自出题,写题解《招募士兵》
  • 原文地址:https://www.cnblogs.com/heheda123456/p/10264042.html
Copyright © 2020-2023  润新知