美文网首页
python并发编程三种方式

python并发编程三种方式

作者: 测试探索 | 来源:发表于2022-01-16 20:26 被阅读0次

一、进程和线程

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)
多进程运行结果

相关文章

网友评论

      本文标题:python并发编程三种方式

      本文链接:https://www.haomeiwen.com/subject/erjgcrtx.html