GIL在Python多線程的應用
1、說明
GIL對I/O綁定多線程程序的性能影響不大,因為線程在等待I/O時共享鎖。
GIL對計算型綁定多線程程序有影響,例如:使用線程處理部分圖像的程序,不僅會因鎖定而成為單線程,而且還會看到執行時間的增加,這種增加是由鎖的獲取和釋放開銷的結果。
2、實例
順序執行單線程(single_thread.py)
importthreading
importtime
deftest_counter():
i=0
for_inrange(100000000):
i+=1
returnTrue
defmain():
start_time=time.time()
fortidinrange(2):
t1=threading.Thread(target=test_counter)
t1.start()
t1.join()
end_time=time.time()
print("Totaltime:{}".format(end_time-start_time))
if__name__=="__main__":
main()
以上就是GIL在Python多線程的應用,希望能對大家有所幫助,更多Python學習教程請關注IT培訓機構:千鋒教育。