• 03 初识并发编程


    操作系统简单介绍

    多道技术:

      空间复用:把许多进程都放入内存中,等待操作系统操作

      时间复用:在内存中一个程序中有io阻塞程序,操作系统会在程序阻塞时,执行其他的程序

    进程之间是空间隔离的

    并发

      伪并行,看着像同时运行,其实是任务之间的切换(遇到io切换的会提高代码效率) ,任务切换+保存状态(保存现场)

    并行

      真正的同时在运行,应用的是多核技术(多个cpu)

    进程三状态:就绪(等待操作系统调度去cpu里面执行)  执行  阻塞 

    提交任务的方式:同步异步   任务的执行状态:阻塞非阻塞

    异步:任务的提交方式,多个任务提交出去,同时执行

     :

    异步非阻塞:

      多个任务同时提交,并且在程序运行的时候没有阻塞

    进程的两种创建方式

    1)

    Process(    target=f1,  args=(i,) (  或者  kwargs={‘形参名为key:值}  )      )

    from multiprocessing import Process
    
    def f1(n):
        print(n)
    
    if __name__ == '__main__':
        # p1 = Process(target=f1,args=('钢铁侠',)) #创建进程对象
        p1 = Process(target=f1,kwargs={'n':'钢铁侠'}) #创建进程对象
        p1.start() 

    2)

    from multiprocessing import Process
    
    class MyProcess(Process):
    
        def __init__(self,n):
            super().__init__()  #别忘了执行父类的init
            self.n = n
    
        def run(self):
            print('宝宝and%s'%self.n)
    
    if __name__ == '__main__':
        p1 = MyProcess('苍老师')
        p1.start()

    Join方法

      主进程等待子进程执行结束再继续执行

    import time
    from multiprocessing import Process
    
    def f1():
        time.sleep(2)
        print('xxxx')
    
    def f2():
        time.sleep(2)
        print('ssss')
    
    if __name__ == '__main__':
        p1 = Process(target=f1,)
        p1.start()
        p1.join()  # 主进程等待子进程运行完才继续执行
        print('开始p2拉')
    
        p2 = Process(target=f2,)
        p2.start()
        p2.join()
        print('我要等我的子进程...')
        print('我是主进程')

    for 循环开启进程

    import time
    from multiprocessing import Process
    
    def f1(i):
        time.sleep(3)
        print(i)
    
    if __name__ == '__main__':
        for i in range(20):
            p1 = Process(target=f1,args=(i,))
            p1.start()
  • 相关阅读:
    设计一个移动应用的本地缓存机制
    LeetCode 15
    POJ 2411
    Mahout构建图书推荐系统【一起学Mahout】
    firefox篇
    zTree实现删除树节点
    Tomcat与Servlet工作流程
    cocos2d 重写顶点着色语言
    将HTML格式的String转化为HTMLElement
    JQuery总结
  • 原文地址:https://www.cnblogs.com/a2534786642/p/10267240.html
Copyright © 2020-2023  润新知