我有3個線程,它們當前正在同時運行。模擬線程上的死鎖
def f1():
print "running first thread\n"
sleep(10)
def f2():
print "running second thread\n"
sleep(10)
def f3():
print "running third thread\n"
sleep(10)
if __name__ == "__main__":
thread1 = Thread(target = f1)
thread2 = Thread(target = f2)
thread3 = Thread(target = f3)
try:
thread1 = Thread(target = f1)
thread1.start()
thread2 = Thread(target = f2)
thread2.start()
thread3 = Thread(target = f3)
thread3.start()
while(thread1.isAlive() or thread2.isAlive() or thread3.isAlive()):
thread1.join()
thread2.join()
thread3.join()
except (KeyboardInterrupt, SystemExit):
sys.exit()
如何模擬死鎖?另外,我如何讓每個線程都運行在另一個線程之後?我也可以列出當前在腳本中運行的所有線程嗎?或給他們優先?
你試圖模擬一個死鎖(如標題詢問),或實際上創建一個死鎖(正如身體問)?而且,如果是後者,你是否僅僅想要一個在現實生活中永遠不會出現的微不足道的僵局,或者是一個有點現實的場景的最簡單的例子? – abarnert
對於初學者,你可能想要一個鎖,你可以在某處死鎖:http://effbot.org/zone/thread-synchronization.htm – paulsm4
@abarnert;我其實需要模擬一個死鎖,很抱歉不該編輯我的帖子。 – moenad