'''
知道使? multiprocessing.Process 类能够创建进程对象
能够 multiprocessing.Process 的 target 参数能够指定进程执?的任务函数
multiprocessing模块就是跨平台版本的多进程模块, 提供了?个Process类来代表?个进程对象,
这个对象可以理解为是?个独?的进程, 可以执?另外的事情
'''
import multiprocessing
import time
import os
def work1():
for i in range(8):
print("正在运行 work1......子进程的名称:",multiprocessing.current_process()," 子进程的编号:",\
multiprocessing.current_process().pid ," os.getpid获取子线程编号:", os.getpid()," os.getppid()获得子进程的父id ->:", os.getppid() )
time.sleep(1)
if __name__=="__main__":
print("主进程的名称= ",multiprocessing.current_process())
print("主进程的编号= ",multiprocessing.current_process().pid)
print("使用os获取主线程的编号:",os.getpid())
process_obj = multiprocessing.Process(target=work1,name="myprocess")
process_obj.start()
print("1111111")
'''
总结
获取进程的名称
multiprocessing.current_process()
设置名称
multiprocessing.Process(target=xxxx,name = "进程的名称")
获取进程的编号
multiprocessing.current_process().pid
os.getpid()
获取进程的父id
os.getppid()
结束进程
kill -9 进程的编号
'''
'''
进程参数、 全局变量问题
?标
知道多进程之间不能共享全局变量
能够给?进程指定的 函数传递参数
1. ?进程参数传递
给?进程传递参数?法和给?线程传递参数?法基本?致!
'''
import multiprocessing
import time
def work1(a,b,c):
print("参数:",a,b,c)
for i in range(10):
print("正在进行 work1...")
time.sleep(0.6)
if __name__ =='__main__':
process_obj = multiprocessing.Process(target=work1,args=(1,),kwargs={"c":100,"b":10000})
process_obj.start()
print("xxxxxxxxxx")
|