进程:
是一个执行中的程序,由操作系统进行管理
每个进程都拥有自己的地址空间、内存、数据栈以及其他用于跟踪执行的辅助数据,操作系统管理其上所有进程的执行,并且未这些进程合理地分配时间,进程也可以通过派生(fork或者spawn)新的进程来执行其他任务。
第一个程序(使用函数的方法)
import os
import time
from multiprocessing import Process
def do_sth(name):
"""
进程要做的事情
:param name: 进程的名称
"""
print('进程的名称:{0},id:{1}.'.format(name,os.getpid()))
time.sleep(100)
print('进程要做的事情')
if __name__ == '__main__':
# 参数这里传入一个元组,由于是一个元组且只有一个my process实参,所以这里要加上一个逗号
p = Process(target=do_sth,args=('my process',))
# 启动进程
p.start()
# 要看到结果,就要挂起进程
p.join()
第一个程序(使用类的方法)
import os
import time
from multiprocessing import Process
def do_sth(name):
"""
进程要做的事情
:param name: 进程的名称
"""
print('进程的名称:{0},id:{1}.'.format(name,os.getpid()))
time.sleep(100)
print('进程要做的事情')
# 使用类的方法来实现多进程
class MyProcess(Process):
# 假设还有其它参数传进来,所以保留*args, **kwargs
def __init__(self, name, *args, **kwargs):
# 注意,这里不能写成self.name,因为这个已经被源码用掉了
self.my_name = name
super().__init__(*args, **kwargs)
def run(self):
# 在类中,使用__init__方法将外面的参数传进来
print('MyProcess进程的名称:{0},id:{1}.'.format(self.my_name, os.getpid()))
time.sleep(100)
print('MyProcess进程要做的事情')
if __name__ == '__main__':
# 使用函数的方法实现多进程
# 参数这里传入一个元组,由于是一个元组且只有一个my process实参,所以这里要加上一个逗号
# p = Process(target=do_sth,args=('my process',))
# 使用类构造的方法实现多进程
p = MyProcess('my process class')
# 启动进程
p.start()
# 要看到结果,就要挂起进程
p.join()
网友评论