进程定义
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。并且进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
进程概念
• 进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。
• 进程是一个“执行中的程序”。
• 进程是操作系统中最基本、重要的概念。
进程与程序区别
• 进程:正在执行的程序。动态的,暂时的
• 程序:没有执行的代码,是一个静态的,永久的
通过python 实现多进程的方式:
multiprocessing.Process
实现代码和多线程的代码十分类似
只不过是把多线程的threading.Thread 换成了多进程的multuprocess.Process了
代码如下:
import threading
import time
import multiprocessing
def main():
#t1 = threading.Thread(target=demo1)
#t2 = threading.Thread(target=demo2)
t1 = multiprocessing.Process(target=demo1)
t2 = multiprocessing.Process(target=demo2)
t1.start()
t2.start()
def demo1():
for i in range(3):
print('----demo1----')
time.sleep(1)
def demo2():
for i in range(3):
print('----demo2-----')
time.sleep(1)
if __name__ == '__main__':
main()
通过类继承的方式实现多进程:
import multiprocessing
import time
class demo1(multiprocessing.Process):
def run(self):
while True:
print('-----demo1-----')
time.sleep(0.5)
class demo2(multiprocessing.Process):
def run(self):
while True:
print('-----demo2-----')
time.sleep(0.5)
def main():
p1 = demo1()
p2 = demo2()
p1.start()
p2.start()
p1.join()
p2.join()
print('主进程')
if __name__ == '__main__':
main()
按照这种方式,将子线程阻塞,子线程结束前主线程不结束,这样就出现了同步进行的三个进程,
这三个python进程其实是将代码复制了3份,算是空间换时间