• 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方法意外的方法视为主进程的方法

    进程对象的其他参数

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

































  • 相关阅读:
    emacs 探索之六:latex中文支持
    One网络模拟器探索之六:Report类的扩展
    emacs 探索之五:latex配置
    emacs 探索之三:基本操作
    DataSet数据传送性能比较
    SQL 2008 附加数据库报5120的错误的解决办法
    软件工程师不可不知的10个概念
    在日期上加上相应天数,并在GridView上显示
    SQL 跨表更新
    SQLSERVER 处理两个日期相减
  • 原文地址:https://www.cnblogs.com/weize111/p/10440129.html
Copyright © 2020-2023  润新知