每个线程都有自己锁,当试图获取对方的锁时,产生死锁
import threading #导入线程模块
mutex = threading.Lock() #创建锁
def index(num):
mutex.acquire() #锁定资源
l = [1,2,3,4]
if len(l) < num:
print('error')
mutex.release() #超出列表则报错并释放锁
return
print(l[num])
mutex.release() #否则打印索引内容并并释放锁
if __name__ == '__main__':
for i in range(10):
t = threading.Thread(target=index,args=(i,))
t.start()
程序报错但无法终止