多进程

作者: 时光清浅03 | 来源:发表于2018-07-09 22:03 被阅读0次

什么叫做多任务呢?简单的说,就是操作系统(OS)可以同时运行多个任务。

其实我们的操作系统是典型的多任务的实现

1、时间片轮换机制

2、优先级别调度

进程(process)

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位

Fork

import os

print("程序开始运行了……")

# 注意os模块中的fork,只支持Linux系统,不支持window系统

# AttributeError: module 'os' has no attribute 'fork' 在window下回抛错

res = os.fork() # 当程序遇到fork方法,则分为两个进程运行

print("此时代码已经成为两个进程了……")

if res == 0:

    print("这个是子进程,子进程的编号是%s,开辟它的主进程编号是%s" %(os.getpid(), os.getppid()))

else:

    print("这个是主进程,主进程的编号是%s, 它开辟的子进程的编号是%s" %(os.getpid(), res))

print("程序运行结束……")

在linu中运行

运行结果如下:

getpidgetppid

我们可以使用os模块的getpid来获取当前进程的进程编号,同样也可以使用os.getppid()方法案来获取当前进程的父进程编号。

运行结果如下:

多进程修改全局变量

进程间是无法共享数据的。

注意:多个进程间,每个进程的所有数据(包括全局变量)都是各自拥有一份的,互不影响。

运行结果如下:

多个fork问题

multiprocessing

函数实现方式

join方法表示只有子进程执行完成后,主进程才能结束。主进程会等待子进程完成后,自身才会执行完成。

进程类的实现非常的简单,只要继承了Process类就ok了,重新该类的run方法,run方法里面的代码,就是我们需要的子进程代码。

在进程类的实现中如果想要初始化一些前面我们提到过的参数,如进程名称等,可以使用__init__借助父类来完成。

相关文章

  • UNIX基础--进程和守护进程

    进程和守护进程 Processes and Daemons 进程(Processes) FreeBSD 是一个多任...

  • rsync服务企业应用

    守护进程服务企业应用: 守护进程多模块功能配置 守护进程的排除功能实践 守护进程来创建备份目录 守护进程的访问控制...

  • Nginx 的进程结构,你明白吗?

    Nginx 进程结构 这篇文章我们来看下 Nginx 的进程结构,Nginx 其实有两种进程结构: 单进程结构 多...

  • 进程/线程

    进程和线程 多任务的介绍 进程的介绍 多进程完成多任务 获取进程编号 进程的注意点 文件夹高并发copy器 1、多...

  • 多易日记进程

    10.29 解决移动端适配问题:采用手淘写的lib-flexible解决移动端的适配,采用pxToRem解决px转...

  • 使用ipc为 electron 实现一个无用的通信轮子

    入门学习electron时了解到,渲染进程与主进程存在一对多的关系, 渲染进程与主进程需要通过ipc或remote...

  • mysql(三)

    MySQL多实例 什么是实例? 一个进程+多个线程+预分配的内存结构 什么是多实例? 多个进程+多个线程+多个预分...

  • 线程和线程池

    线/进程、多线/多进程、线程并发/并行 一、线程、进程概念 进程:是程序的一次运行活动,由系统资源分配和调度的一个...

  • Python札记52_进程和线程2

    在之前的札记Python札记50_进程和线程1中介绍了进程、线程和子进程以及多进程的相关知识,本札记中重点介绍多线...

  • 5. python多进程锁-实现简易抢票

    一、主题 Lock类与RLock类相同:由于进程之间随机调度:某进程可能执行n条后,CPU接着执行其他进程。为了多...

网友评论

      本文标题:多进程

      本文链接:https://www.haomeiwen.com/subject/kmgtpftx.html