zoukankan      html  css  js  c++  java
  • python之---进程

    一、进程

    1、什么是进程

    (1)正在进行的一个过程或者说一个任务,而负责执行的就是CPU

    2、进程与程序的区别

    (1)程序仅仅是一堆代码而已,而进程指的是程序的运行过程

    同一个程序执行两次,也是两个进程

    3.同步与异步

    (1)同步执行:一个程序在执行时,另一个程序等执行完后才能执行

            异步执行:一个程序执行时,另一个程序无需等待执行完毕才执行,就可以继续执行,当有消息返回时系统会通知后者进行处理

                           这样可以提高执行效率。

    4.并行与并发

    (1)无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cpu同一时刻只能执行一个任务

    5.进程:

    from multiprocessing import Process
    import  time ,random
    def piao(name):
        print('%s is piaoing'%name)
        time.sleep(random.randint(1,3))
        print('%s is end'%name)
    if __name__ == '__main__':
        p1=Process(target=piao,args=('fu',))
        p1.start()
        print('主进程')
    进程1
    from multiprocessing import Process
    import  time,random
    import os
    class Piao(Process):
        def __init__(self,name):
            super().__init__()
            self.name=name
        def run(self):
            print(os.getppid(),os.getpid())
            print('%s is piaoing'%self.name)
            time.sleep(random.randint(5,10))
            print('%s is piao end'%self.name)
    if __name__ == '__main__':
        p1=Piao('fu')
        p2=Piao('ping')
        # p1=Process(target=piao,args=('fu',))
        p1.start()
        p2.start()
        print('主进程',os.getppid(),os.getpid())
    进程2
    from multiprocessing import Process
    import time,random
    import os
    class Piao(Process):
        def __init__(self,name):
            super().__init__()
            self.name=name
        def run(self):
            print(os.getppid(),os.getpid())
            time.sleep(1000)
    if __name__ == '__main__':
        p1=Piao('al')
        p2=Piao('wu')
        p3=Piao('yu')
    
        p1.start()
        p2.start()
        p3.start()
        print('主进程',os.getpid(),os.getppid())
    验证pid与ppid
    from multiprocessing import Process
    import time,random
    import os
    def piao(name):
        print(os.getppid(),os.getpid())
        print('%s is piaoing' %name)
        # time.sleep(random.randint(1,3))
        print('%s is piao end' %name)
    if __name__ == '__main__':
        p1=Process(target=piao,kwargs={'name':'alex',})
        p2=Process(target=piao,args=('wupeiqi',))
        p3=Process(target=piao,kwargs={'name':'yuanhao',})
        p1.start()
        p2.start()
        p3.start()
        print('主进程',os.getpid())
    开启进程方式一
    from multiprocessing import Process
    import time,random
    import os
    class Piao(Process):
        def __init__(self,name):
            super().__init__()
            self.name=name
        def run(self):
            print(os.getppid(),os.getpid())
            print('%s is piaoing' %self.name)
            # time.sleep(random.randint(1,3))
            print('%s is piao end' %self.name)
    if __name__ == '__main__':
        p1=Piao('alex')
        p2=Piao('wupeiqi')
        p3=Piao('yuanhao')
    
        p1.start()
        p2.start()
        p3.start()
        print('主进程',os.getpid(),os.getppid())
    开启进程方式2
  • 相关阅读:
    7.4mybatis整合ehcache(mybatis无法实现分布式缓存必须和其他缓存框架整合)
    Mybatis-利用resultMap 输出复杂pojo
    1.2MyBatis介绍
    1Mybatis入门--1.1单独使用jdbc编程问题总结
    AJAX的来龙去脉(由来)-如何被封装出来的--ajax发送异步请求(四步操作)
    人人权限 添加一张表查询出来
    salesforce lightning零基础学习(九) Aura Js 浅谈二: Event篇
    salesforce lightning零基础学习(八) Aura Js 浅谈一: Component篇
    salesforce lightning零基础学习(七) 列表展示数据时两种自定义编辑页面
    salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件
  • 原文地址:https://www.cnblogs.com/mengqingjian/p/7423674.html
Copyright © 2011-2022 走看看