多任务处理方式之一:多进程

Posted fengting0913

tags:

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

一、进程理解:

  • 1、系统进行资源分配调度的基本单位,一个具有一定独立功能程序关于某个数据集合的一次运行活动

  • 2、它是一个动态的概念,一个活动的实体

    • 狭义定义:an instance of a computer program that is being executed正在运行的程序的实例化对象
    • 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是操作系统进行资源分配和调度的基本单位,是操作系统动态执行的基本单元
  • 注:其概念的关键点在于

1)、进程是一个实体(动态的),具有自己独立的地址空间,包括:
 	文本区域(text region):存储处理器执行的代码;
 	数据区域(data region):存储变量与进程执行期间使用的动态分配的内存;
 	堆栈(stack region):存储的是程序执行过程中调用的指令与本地变量;
2)、编写完的代码,没有运行时,称为程序,
    正在运行的代码,称为进程
    程序是死的(静态的),进程是活的(动态的)

二、创建进程

导入multiprocessing模块中的Process类以供后续创建类的时候直接调用

from multiprocessing import Process
import time
# 导入multiprocessing模块中的Process类以供后续创建类的时候直接调用
  1. 创建进程的方式
创建进程的方法一:
利用multiprocessing模块提供一个Process类来创建一个进程对象
n = 5
def func():
	global n
	while n > 0:
		print(n)
		time.sleep(3)
		n -= 1
if __name__ == "__main__":
	p = Process(target = func)
	p.start()
	p.join()

创建进程的方法二:
创建新的进程可以自定义一个类去继承Process类,每次实例化这个类的时候,就等同于实例化一个进程对象

import multiprocessing
import time
class ClockProcess(multiprocessing.Process):
	def run(self):
		n = 5
		while n > 0:
			print(n)
			time.sleep(3)
			n -= 1
if __name__ == "__main__":
	p = ClockProcess()
	p.start()
	p.join()

以上是关于多任务处理方式之一:多进程的主要内容,如果未能解决你的问题,请参考以下文章

多线程

cpp►多线程

简单多进程任务处理程序

多线程集成设计模式--MasterWorker模式讲解

多个请求是多线程吗

多线程:多线程设计模式:Master-Worker模式