码迷,mamicode.com
首页 > 其他好文 > 详细

昨日回顾

时间:2019-09-16 16:00:52      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:roc   物理   class   进程   cpu   rom   空间   ssi   tpi   

昨日回顾

多道技术:

? 空间复用:多个程序公用一个内存条,彼此隔离,物理级别隔离

? 时间复用:公用一个cpu

切换的情况:

? io切,占用时间过长也切

串行:一个任务完完整整的运行结束,再运行下一个任务.

并发:看起来是同时执行多个任务 单核

并行:真正的做到了同时执行多个任务 多核

#开启子进程的方式
#####方式一
from multiprocessing import Process


def task():
    pass


if __name__ == '__main__':
    p = Process(target=task)
    p.start()
##### 方式二

from multiprocessing import Process

class MyP(Process):
    def run(self):
        pass

if __name__ == '__main__':
    p = MyP()
    p.start() # 给操作系统发一个亲请求,操作系统去开进程
    print('sadf')

join回顾

from multiprocessing import Process
import time,os

def task(s):
    time.sleep(s)


if __name__ == '__main__':

    p1 = Process(target=task,args=(100,))
    p2 = Process(target=task,args=(2,))
    p3 = Process(target=task,args=(3,))

    p1.start()
    p2.start()
    p3.start()
    p1.join() # 等1s,
    p2.join() # 等1s,
    p3.join() # 等1s,内部会调用wait()
    print(p1.pid)
    print('子',p1.pid)
    print('主',os.getpid()) # 主进程要等待所有的子进程结束才会结束.因为主进程要在结束前回收僵尸进程.(*****)

僵尸进程: 没有死透的子进程

孤儿进程: 子进程运行的过程父进程死了就变成了孤儿进程,被进程init接管.

父进程一直不死,一直在开启子进程,意味着占用过过多的pid并且不回收.

解决方案: 强制杀死这个父进程.

守护进程

#本质也是进程
#主进程的代码执行完毕守护进程直接结束
#大前提:主进程结束前守护进程一直运行着
from multiprocessing import Process
import time
def task():
    print('守护进程  start')
    # time.sleep(4)
    print('守护进程  end')


if __name__ == '__main__':
    p = Process(target=task)
    p.daemon = True
    p.start()
    time.sleep(2)
    print('主')

昨日回顾

标签:roc   物理   class   进程   cpu   rom   空间   ssi   tpi   

原文地址:https://www.cnblogs.com/aden668/p/11527682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!