美文网首页
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