子线程vs子进程创建速度
from threading import Thread
from multiprocessing import Process
import time
def task(name):
print(f'{name} is running')
time.sleep(2)
print(f'{name} is end')
if __name__ == '__main__':
t=Thread(target=task,args=('子线程',))
p=Process(target=task,args=('子进程',))
# t.start()
p.start()
print('主')
开启子线程的打印效果:
子线程 is running
主
子线程 is end
开启子进程打印效果:
主
子进程 is running
子进程 is end
进程和线程的创建速度
开启子进程需要申请资源开辟空间 慢
开启子线程只是告诉操作系统一个执行方案 快
子线程进程共享
from threading import Thread
import time,os
x=100
def task():
global x
x=50
print(os.getpid()) #8652
if __name__ == '__main__':
t=Thread(target=task)
t.start()
time.sleep(2)
print(x) #50
print(os.getpid()) #8652