1、说明
GIL对I/O绑定多线程程序的性能影响不大,因为线程在等待I/O时共享锁。
GIL对计算型绑定多线程程序有影响,例如: 使用线程处理部分图像的程序,不仅会因锁定而成为单线程,而且还会看到执行时间的增加,这种增加是由锁的获取和释放开销的结果。
2、实例
顺序执行单线程(single_thread.py)
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学习网。
Copyright © 2019- net188.cn 版权所有 湘ICP备2022005869号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务