python 进程的使用、multiprocessing、Process

并行:看上去一起执行

并发:实际上一起执行

编写完毕的代码,在没有运行之前称为程序

正在运行的代码,就称为进程

import os

ret=os.fork()#linux平台有,window中没有,window使用mulitprocessing

这里返回两个值:父子进程都会返回,父进程返回子进程的id,子进程返回0


主进程ret>0

ret为子进程创建的pid

getpid()得到当前进程的进程号,getppid()得到当前进程的父进程

父进程fork()的返回值,就是刚刚创建出来的子进程的id


fork()是多任务的一种

进程之间是相互独立的,需要通信

import os
ret=os.fork()#这里会有两个ret,一个是父进程的,一个是子进程的

if ret==0:
	print("--子进程---")
else:
	print("--父进程----")

#上面的判断,父进程执行一次,子进程执行一次
ret=os.fork()#这里,父子进程执行到这里,分别创建自己的进程和自己的子进程
#下面的程序会执行4次,父子进程和各自的子进程
if ret==0:
	print("--子进程---")
else:
	print("--父进程----")

multiprocessing的使用

from multiprocessing import Process
#window不可以用fork(),但是可以用multiprocessing,可以跨平台使用
import time

def test():
	while True:
		print("---test---")
		time.sleep(2)

p=Process(target=test)
p.start()#让这个进程开始执行test函数里的代码,启动进程
p.join()#等待进程结束才执行下面的程序()里面有时间的话,说明等待多长时间
p.terminate()#进程结束

#所有的进程结束后,程序才结束

Process()

from multiprocessing import Process

def test():
	print("hello")

p=Process(target=test)
p.start()


你可能感兴趣的:(python)