• 进程和线程的三大区别


    #创建进程的开销远大于开启线程的开销
    from threading import Thread
    from multiprocessing import Process
    import time
    def task(name):
    print('代双华吃%s '%name)
    time.sleep(3)
    print('代双华吃%s'%name)
    if __name__ =="__main__":
    # p = Process(target=task, args=('鸟屎', ))
    # p.start()
    t = Thread(target=task, args=('鸟屎', ))
    t.start()
    print('主')


    # 同一进程内的所有线程共享此进程内的地址空间
    from threading import Thread
    from multiprocessing import Process
    n = 100
    def task():
    global n
    n = 0
    if __name__ =="__main__":
    p = Process(target=task)
    p.start()
    p.join()
    # t = Thread(target=task)
    # t.start()
    # t.join()
    print('主', n)

    # 瞅PID
    # 查看进程pid
    from multiprocessing import Process, current_process #current_process只可以查看pid不可以查看ppid(父进程的pid)
    import os
    def task():
    print('子进程的PID是%s,父进程的PID是%s'%(os.getpid(), os.getppid()))
    if __name__ =="__main__":
    p = Process(target=task)
    p.start()
    print('主', os.getpid())
    # 查看线程pid(为了方便理解暂称子线程)
    from threading import Thread, current_thread #current_Thread可以查看pid同os模块的os.getpid()
    import os
    def task():
    print('子线程的PID是%s' % (os.getpid()))
    if __name__ =="__main__":
    t = Thread(target=task)
    t.start()
    t.join()
    print('主', os.getpid())


  • 相关阅读:
    10.23继承
    10.22语法 class 类 面向对象概念 类与对象 对象的使用 绑定方法
    10.18
    10.16
    读书笔记-软技能:代码之外的生存指南
    git reset
    阿里云安装samba
    关于svn由于目标计算机积极拒绝,无法连接的解决办法
    yii2简单安装
    指定路径创建中文文件名并存入内容
  • 原文地址:https://www.cnblogs.com/yuexijun/p/11528149.html
Copyright © 2020-2023  润新知