一、进程和线程
1.1线程
是计算机中可以被cpu调度的最小单元(真正在工作)
1.2进程
是计算机资源分配的最小单元(进程为线程提供资源)
一个进程中可以有多个线程,同一个进程中的线程可以共享此进程中的资源
二、GIL锁
全局解释器锁,是Cpython特有的,让一个进程中同一时刻只能有一个线程可以被CPU调用。
使用场景
image.png三、进程运行机制
普通运算
import time
start_Time = time.time()
result = 0
for i in range(100000000):
result += i
print(result)
end_time = time.time()
print("耗时:",end_time - start_Time)
普通运算
进程运算
import time
import multiprocessing
def task(start,end,queue):
result = 0
for i in range(start,end):
result += i
queue.put(result)
if __name__ == '__main__':
queue = multiprocessing.Queue()
start_Time = time.time()
p1 = multiprocessing.Process(target=task,args=(0,50000000,queue))
p1.start()
p2 = multiprocessing.Process(target=task, args=(50000000, 100000000, queue))
p2.start()
v1 = queue.get(block = True)
v2 = queue.get(block = True)
print(v1+v2)
end_time = time.time()
print("耗时:",end_time - start_Time)
多进程运行结果
网友评论