码迷,mamicode.com
首页 > 系统相关 > 详细

进程的概念和剖析

时间:2019-05-07 15:37:30      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:size   系统   变化   running   over   code   计算   技术   join()   

1.操作系统的发展史(经历的三个阶段)

     1.穿孔卡片 ======》2.磁带 ========》3.批处理

    经历的三个阶段的变化,本质上无非是想要提高CPU的利用效率。

2.多道程序设计和单道程序设计的理念

    多道程序设计:1.空间上的复用:他们共同使用一台计算机上的硬件设备。

           2.时间上的复用:就拿做家务来说,你洗衣服需要45分钟,在这45分钟里你可以完成烧水10分钟的事情和30分钟的做饭两件事,但是完成的总时间是只有45分钟。

           3.CPU在程序中来回切换程序进行执行

           4.CPU在以下两种情况下才会切换:1.程序占用了太长时间的CPU

                           2.遇到了IO

    多道模型图:

      程序1进入 ========》=========》========》程序1结束

           程序2进入:=========》========》========》程序2结束

   单道程序设计:后面的程序必须等到前面的程序执行完了以后才可以进入。时间的成本是累计的

   单道模型图:

     程序1进入:=====》======》======》程序1结束的同时程序2进入:=====》======》=====》程序2结束的同时程序3进入:..

3.进程

 进程:正在运行的程序

 程序:一堆等待执行的代码

 进程是一个个的实体。每个进程都有它独立的内存空间。

4.同步和异步:他们是针对提交方式来分割的

  同步:一个程序提交自己的任务和请求后,在原地什么都不做等待这对方的回答!

   异步:一个程序提交自己的任务和请求后,不用在原地等待,可以做自己的事情,不用等待对方的回答!

5.阻塞和非阻塞:他们是以状态来分割的

  阻塞:阻塞就是遇到了IO操作,进入阻塞态

  非阻塞:就是就绪态和运行态

6.开启进程的两种方式

技术图片
from multiprocessing import Process
import time


def task(name):
    print(%s is running % name)
    time.sleep(3)
    print(%s is over % name)


if __name__ == __main__:
    p = Process(target=task, args=(wanglei,))
    p.start()
方式一
技术图片
from multiprocessing import Process
import os
import time


class Myprocess(Process):
    def __init__(self, name):
        super().__init__()
        self.name = name

    def run(self):
        print(%s is running! %self.name, os.getpid())
        time.sleep(3)
        print(%s is over % self.name, os.getpid())


if __name__ == __main__:
    p = Myprocess(egon)
    p.start()
    print(主进程!, os.getpid())
方式二

7.进程中的join方法的声明和使用

技术图片
from multiprocessing import Process
import time


def task(name):
    print(%s is running % name)
    time.sleep(2)
    print(%s is over % name)


if __name__ == __main__:
    p = Process(target=task, args=(haha,))
    p.start()
    # p.join()  # 等到子进程结束以后在执行主进程
    print(主进程)
进程中的join方法

 

进程的概念和剖析

标签:size   系统   变化   running   over   code   计算   技术   join()   

原文地址:https://www.cnblogs.com/wanglei957/p/10821501.html

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