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

操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

操作系统简单介绍:

  多道程序设计技术

    空间复用

    时间复用

    进程之间是空间隔离的

  分时系统

  实时系统

  通用操作系统

并发:伪并行,看着像同时运行,其实是任务之间的切换(遇到io切换的会提高代码效率) ,任务切换+保存状态(保存现场)

并行:真正的同时在运行,应用的是多核技术(多个cpu)

进程三状态:就绪(等待操作系统调度去cpu里面执行)      执行  阻塞

提交任务的方式:同步异步   任务的执行状态:阻塞非阻塞

  异步:任务的提交方式,多个任务提交出去,同时执行

分类:

  同步阻塞

  异步阻塞:

  异步非阻塞:

  同步非阻塞:

进程的2种创建方式:

第一种:

import time
from multiprocessing import Process

def f1():
    time.sleep(3)
    print(‘我同桌是猪‘)
    print(time.strftime(‘%Y-%m-%d %H:%M:%S‘, time.localtime()))
def f2():
    time.sleep(3)
    print(‘还偷偷睡觉‘)
    print(time.strftime(‘%Y-%m-%d %H:%M:%S‘,time.localtime()))

if __name__ == ‘__main__‘:
    p1 = Process(target=f1,)
    p2 = Process(target=f2, )
    p1.start()
    p2.start()

第二种方式: 创建一个类,继承Process

from multiprocessing import Process
class MyProcess(Process):
    def __init__(self,n):
        super().__init__()  #别忘了执行父类的init
        self.n = n
    def run(self):
        print(‘%s快要睡着了‘%self.n)

if __name__ == ‘__main__‘:
    p1 = MyProcess(‘Jerry‘)
    p1.start()

传参方式:

from multiprocessing import Process
# 演示两种传参方式
def f1(n):
    print(n)

if __name__ == ‘__main__‘:
    # p1 = Process(target=f1,args=(‘Jerry‘,)) #创建进程对象
    p1 = Process(target=f1,kwargs={‘n‘:‘Jerry‘}) # 创建进程对象    kwargs={函数中的形参作为key:值}
    p1.start()  #给操作系统发送了一个创建进程的信号,后续进程的创建都是操作系统的事儿了

for 循环创建进程:

import time
from multiprocessing import Process

def f1(i):
    time.sleep(3)
    print(i)
if __name__ == ‘__main__‘:
    for i in range(20):
        p1 = Process(target=f1,args=(i,))
        p1.start()

join()方法:主进程等待子进程运行完才继续执行

import time
from multiprocessing import Process

def f1():
    time.sleep(2)
    print(‘我是f1‘)

def f2():
    time.sleep(2)
    print(‘我是f2‘)

if __name__ == ‘__main__‘:
    p1 = Process(target=f1,)
    p1.start()
    p1.join()  # 主进程等待子进程运行完才继续执行

    print(‘p2来了‘)
    p2 = Process(target=f2,)
    p2.start()
    p2.join()

    print(‘我要等了...等我的子进程...‘)
    print(‘我是主进程!!!‘)

原文地址:https://www.cnblogs.com/selina1997/p/10240873.html

时间: 2024-11-08 04:44:12

python之操作系统介绍,进程的创建的相关文章

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

一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 二 多道技术: 所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行.即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬.软件资源.当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序. 1.产生背景:针对单核,实现并发 ps: 现在的主机一般是多核,那么每个核都会利用多道技术有4个cpu, 运行于cpu1的某个程序遇到io

Linux 下进程操作,----进程的创建与控制

---恢复内容开始--- 进程是一个程序一次执行的过程,是操作系统动态执行的基本单元. 进程的概念主要有两点:第一,进程是一个实体.每个进程都有自己的虚拟地址空间,包括文本区.数据区.和堆栈区.文本区域存储处理器执行的代码:数据区存储变量和动态分配的内存:堆栈区存储着活动进程调用的指令和本地变量.第二,进程是一个"执行中的程序",它和程序有本质区别.程序是静态的,它是一些保存在磁盘上的指令的有序集合:而进程是一个动态的概念,它是一个运行着的程序,包含了进程的动态创建.调度和消亡的过程,

python--操作系统介绍,进程的创建(并发)

一 .  操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 二 多道技术: 所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行.即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬.软件资源.当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序. 1.产生背景:针对单核,实现并发 ps: 现在的主机一般是多核,那么每个核都会利用多道技术有4个cpu, 运行于cpu1的某个程序遇

python并发编程(进程操作)

一. multiprocess模块 仔细说来,multiprocess不是一个模块而是python中一个操作.管理进程的包. 之所以叫multi是取自multiple的多功能的意思,在这个包中几乎包含了和进程有关的所有子模块.由于提供的子模块非常多,为了方便大家归类记忆,我将这部分大致分为四个部分:创建进程部分,进程同步部分,进程池部分,进程之间数据共享. process模块介绍 process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建. 二. 使用process模块创建进程

操作系统介绍-操作系统历史,IO,进程的三态,同步异步阻塞非阻塞

1.操作系统历史 2.进程,IO,同步异步阻塞非阻塞 操作系统历史: 手工操作: 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式.此时还没有操作系统的概念. 手工操作方式两个特点: (1)用户独占全机.不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低. (2)CPU 等待手工操作.CPU的利用不充分. 批处理-磁带操作: 主机与输入机之间增加一个存储设备--磁带,在运行于主机上的监督程序的自动控制下,计算机可自动完成:成批地把输入机上的用户作业读入

Python程序中的进程操作-开启多进程(multiprocess.process)

目录 一.multiprocess模块 二.multiprocess.process模块 三.process模块介绍 3.1 方法介绍 3.2 属性介绍 3.3 在windows中使用process模块的注意事项 四.使用process模块创建进程 4.1 在Python中启动的第一个子进程 4.2 join方法 4.3 查看主进程和子进程的进程号 4.4 多个进程同时运行 4.5 多个进程同时运行,再谈join方法(1) 4.6 多个进程同时运行,再谈join方法(2) 4.7 通过继承Pro

Python程序中的进程操作-进程池(multiprocess.Pool)

Python程序中的进程操作-进程池(multiprocess.Pool) 一.进程池 为什么要有进程池?进程池的概念. 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务.那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗时间,销毁进程也需要消耗时间.第二即便开启了成千上万的进程,操作系统也不能让他们同时执行,这样反而会影响程序的效率.因此我们不能无限制的根据任务开启或者结束进程.那么我们要怎么做呢? 在这里,要给大家介

110 python程序中的进程操作-开启多进程

之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程.多个进程可以实现并发效果,也就是说,当我们的程序中存在多个进程的时候,在某些时候,就会让程序的执行速度变快.以我们之前所学的知识,并不能实现创建进程这个功能,所以我们就需要借助python中强大的模块. 一.multiprocess模块 仔细说来,multipro

python的multiprocessing模块进程创建、资源回收-Process,Pool

python的multiprocessing有两种创建进程的方式,每种创建方式和进程资源的回收都不太相同,下面分别针对Process,Pool及系统自带的fork三种进程分析. 1.方式一:fork() 举例: 1 import os 2 pid = os.fork() # 创建一个子进程 3 os.wait() # 等待子进程结束释放资源 4 pid为0的代表子进程. 缺点:1.兼容性差,只能在类linux系统下使用,windows系统不可使用:2.扩展性差,当需要多条进程的时候,进程管理变得