• 技术文章 >Python技术 >Python基础教程

    GIL在Python多线程的应用

    小妮浅浅小妮浅浅2021-02-23 16:30:10原创2228

    1、说明

    GIL对I/O绑定多线程程序的性能影响不大,因为线程在等待I/O时共享锁。

    GIL对计算型绑定多线程程序有影响,例如: 使用线程处理部分图像的程序,不仅会因锁定而成为单线程,而且还会看到执行时间的增加,这种增加是由锁的获取和释放开销的结果。

    2、实例

    顺序执行单线程(single_thread.py)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    import threading

    import time

      

    def test_counter():

        i = 0

        for _ in range(100000000):

            i += 1

        return True

      

    def main():

        start_time = time.time()

        for tid in range(2):

            t1 = threading.Thread(target=test_counter)

            t1.start()

            t1.join()

        end_time = time.time()

        print("Total time:{}".format(end_time-start_time))

      

      

    if __name__ == "__main__":

    main()

    以上就是GIL在Python多线程的应用,希望能对大家有所帮助,更多知识尽在python学习网。

    专题推荐:python gil
    上一篇:python中Plotly Express是什么? 下一篇:python对象容器和回收的详解

    相关文章推荐

    • python中@是什么意思• python中如何画火山图• python如何应用于数据的基础统计分析• Python Vlookup函数的查询• python使用Plotly实现动画设计• python中Plotly Express是什么?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网