• 32


    进程的pid,  父进程ppid,开启进程的方式,进程的空间隔离验证, join方法,,守护进程

    进程的pid与父进程的ppid

    查看进程号:1终端查看tasklist

         2本文件查看 import os  print(os.getpid())

    查看父进程:print(os.getppid())

    创建进程的方法:

    from multiprocessing import Process
    a=1
    b=2
    def task(n):
    print('子进程开始....') 在windows中Process()必须放到# if __name__ == '__main__':下
    if __name__=='__main__':
    # p=Process(target=task,args=(1,)) #p就是一个进程对象
    p = Process(target=task, kwargs={'n':1}) #p就是一个进程对象
    p.start()#给操作系统发送一个请求
    print('主进程开始')
    # p = Process(target=task, kwargs={'n': 1})创建一个进程对象,将进程的代码放进对象中
    # 首先p.start会给操作系统发送一个请求,操作系统得到命令,然后执行p进程对象的代码( 会赋值一份到子进程 ),这个过程会有时间消耗
    # print('主进程开始') 主进程开始和子进程开始,谁先到内存被cpu执行,谁先运行
    target表示调用对象,即子进程要执行的任务 args表示调用对象的位置参数元组,args=(1,2,'egon',) kwargs表示调用对象的字典,kwargs={'name':'egon','age':18} name为子进程的名称args指定的为传给target函数的位置参数,是一个元组形式,必须有逗号

    验证进程间的内存隔离
    from multiprocessing import Process
    import time
    x=1000
    def task():
    time.sleep(3)
    global x
    x=2
    print('子进程',x)
    if __name__=='__main__':
    p=Process(target=task,)
    p.start()
    time.sleep(5)
    print('主进程',x)

    要求:主进程要在子进程结束后再运行,join方法 p.join()通知p子进程结束之后再执行主进程,要利用for循环
    多个进程使用join,他们之间互不影响
    p.join()会将除join方法意外的方法视为主进程的方法

    进程对象的其他参数

    守护进程:子进程守护主进程

































  • 相关阅读:
    第十一次作业
    第十次作业
    第九次作业
    第八次作业
    第七次作业
    第六次作业
    Springboot 2.x 使用 Druid 数据源
    @ConditionalOnMissingBean、@Import 组合使用
    Springboot 2.x 整合 JDBC
    IDEA org.apache.maven.plugins:maven-jar-plugin 报红
  • 原文地址:https://www.cnblogs.com/weize111/p/10440129.html
Copyright © 2020-2023  润新知