进程,操作系统,Python并发编程之多进程

Posted wxl1025

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程,操作系统,Python并发编程之多进程相关的知识,希望对你有一定的参考价值。

1.进程基础知识

1.程序:若干文件
2.进程:一个正在执行的文件,程序
3.进程被谁执行:cpu最终运行指定的程序
4.操作系统调度作用:将磁盘上的程序加载到内存,然后交由CPU去处理,一个CPU正在运行的一个程序,就叫开启了一个进程

2.操作系统

1.操作系统:存在于硬盘与软件之间,管理、协调、控制软件与硬件的交互
2.操作系统的作用:将一些复杂的硬件封装成简单的借口,便于使用;合理地调度分配多个进程与cpu的关系,让其有序化
3.操作系统发展史
①第一代电子计算机(1940-1955)   二战时期
手工操作,需要预定,类似于插线板的程序,各种硬件的操作插线与程序结合
特点:没有操作系统的概念,所有的硬件连接都是自己完成
优点:独享
缺点:独享浪费资源;所有的程序都是串行处理
②第二代计算机(1955-1965)
不需要程序员本人进行硬件的操作,所有的硬件操作都已经是成型的机器
特点:磁盘存储,批处理系统
优点:节省了程序员连接硬件操作的时间
缺点:不能独享计算机;不能在程序运行时修复bug;cpu还是串行处理
③第三代计算机
集成电路概念,所有的硬件变得很小,排列在线路板上
背景:20世纪60年代初,计算机两条生产线互不兼容:计算密集型,用于科学计算,运算;IO密集型,用户商用,归档、打印等工作
特点:集成电路,多道程序系统
阻塞:IO阻塞  =>  recv,accept,read,input,write,sleep等
system/360系列:将两种计算机类型合并成一个  =>  第三代计算机
解决的问题:
1.解决人工中途参与磁盘传递工作,以及输入输出设备不同机的问题
2.多到技术:时间上的复用,但是如果进程都没有IO阻塞,多道技术就会影响最终的效率;空间上的复用,一个内存可以加载多个进程

3.进程的创建

串行:所有的进程由cpu一个个地解决
并发:单个cpu,同时执行多个进程(来回切换),看起来像是同时运行
并行:多个cpu,真正的同时运行多个进程
进程的创建
python中,如果一次想开启多个进程,必须是一个主进程,开启多个子进程
Linux,Windows由主进程开启子进程:
相同点:原则上主进程开启子进程,两个进程都有相互隔离的独立空间,互不影响
不同点:在Linux中,子进程空间的初识数据完全是从主进程copy一份;而在Windows中则在此基础上有所不同

4.Python并发编程之多进程

第一种方式(常用)
from multiprocessing import Process
def task(name):
    print(name)
if __name__ == '__main__':      # windows环境下,开启多进程一定放在此下面
    p = Process(target=task,args=('蔡徐坤',))
    p.start()
    # 通知操作系统,在内存中开辟一个空间,将p这个进程放进去,然后让cpu执行
    print('主进程')
第二种方式(了解)
from multiprocessing import Process
class MyProcess(Process):
    def __init__(self, name):
        super().__init__()   # 必须要继承父类的__init__
        self.name = name
    def run(self):  # 必须定义run名字   =>   类的约束
        print(self.name)
if __name__ == '__main__':  # windows环境下,开启多进程一定放在这个下面
    p = MyProcess('怼怼哥')
    p.start()
    print('===主进程')

以上是关于进程,操作系统,Python并发编程之多进程的主要内容,如果未能解决你的问题,请参考以下文章

python学习_day32_并发编程之多进程

进程,操作系统,Python并发编程之多进程

python并发编程之多线程

并发编程之多进程操作

python并发编程之多进程

python并发编程之多线程