Python GIL
871 ワード
1つの時点でCPU上で実行されるスレッドは1つしかありません.マルチスレッドを作成するには、スレッド間の同期を考慮する必要はありませんか?
この例を見てください.
import threading
total = 0
def add():
global total
for i in range(1000000):
total += 1
def desc():
global total
for i in range(1000000):
total -=1
thread1 = threading.Thread(target=add)
thread2 = threading.Thread(target=desc)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print(total)
totalの値は、実行するたびに異なり、GILがいつリリースされるかを示します.
GILはいつリリースされますか?