码迷,mamicode.com
首页 > 编程语言 > 详细

python之路--操作系统介绍,进程的创建

时间:2019-01-08 21:59:13      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:join()   算法   sleep   接口   elf   调度算法   name   多个   targe   

一 操作系统的作用:
  1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口
  2:管理、调度进程,并且将多个进程对硬件的竞争变得有序

二 多道技术:

  所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。

  1.产生背景:针对单核,实现并发
  ps:
  现在的主机一般是多核,那么每个核都会利用多道技术有4个cpu,
  运行于cpu1的某个程序遇到io阻塞,会等到io结束再重新调度,会被调度到4个cpu中的任意一个,具体由操作系统调度算法决定。

  2.空间上的复用:如内存中同时有多道程序
  3.时间上的复用:复用一个cpu的时间片
  强调:遇到io切,占用cpu时间过长也切,核心在于切之前将进程的状态保存下来,这样才能保证下次切换回来时,
  能基于上次切走的位置继续运行

三 multiprocess 的简单应用

import time
from multiprocessing import Process
def func1():
    print(‘我是大帅哥‘)
    time.sleep(1)
    print(‘我是宇宙无敌大帅哥‘)
    time.sleep(3)
    print(‘人称北京吴彦祖‘)
def func2():
    time.sleep(3)
    print(‘斯嘉丽.约翰逊是大美女‘)
if __name__ == ‘__main__‘:
    f1 = Process(target=func1) # 后面不能用()
    f2 = Process(target=func2)
    f1.start()
    f2.start()

四 进程的传参方式

from multiprocessing import Process
class MyProcess(Process):
    # 要想使类中的init功能需要继承父类的init,在添加新功能
    def __init__(self,n):
        # 要执行process
        super().__init__()  
        self.n = n
    def run(self):
        print(‘宝宝and%s不可告人的事情‘%self.n)
if __name__ == ‘__main__‘:
    p1 = MyProcess(‘高望‘)
    p1.start()

五 join方法

import time
from multiprocessing import Process
def f1():
    time.sleep(2)
    print(‘xxxx‘)
def f2():
    time.sleep(2)
    print(‘ssss‘)
if __name__ == ‘__main__‘:
    p1 = Process(target=f1,)
    p1.start()
    p1.join()  # 主进程等待子进程运行完才继续执行
    print(‘开始p2拉‘)
    p2 = Process(target=f2,)
    p2.start()
    p2.join()
    print(‘我要等了...等我的子进程...‘)
    # time.sleep(3)
    print(‘我是主进程!!!‘)

  

 

python之路--操作系统介绍,进程的创建

标签:join()   算法   sleep   接口   elf   调度算法   name   多个   targe   

原文地址:https://www.cnblogs.com/attila/p/10241555.html

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