Skip to content

Commit a2c337a

Browse files
committed
Threading\S04-Deadlock\S04-01-deadlock-threading
1 parent 6a43860 commit a2c337a

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import threading
2+
import time
3+
4+
l1 = threading.Lock()
5+
l2 = threading.Lock()
6+
7+
def f1(name):
8+
print('thread',name,'about to lock l1')
9+
with l1:
10+
print('thread',name,'has lock l1')
11+
time.sleep(0.3)
12+
print('thread',name,'about to lock l2')
13+
with l2:
14+
print('thread',name,'run into deadLock,\nthis line will never run')
15+
16+
def f2(name):
17+
print('thread',name,'about to lock l2')
18+
with l2:
19+
print('thread',name,'has lock l2')
20+
time.sleep(0.3)
21+
print('thread',name,'about to lock l1')
22+
with l1:
23+
print('thread',name,'run into deadLock,\nthis line will never run')
24+
25+
if __name__ == '__main__':
26+
t1=threading.Thread(target=f1, args=['t1',])
27+
t2=threading.Thread(target=f2, args=['t2',])
28+
29+
t1.start()
30+
t2.start()
31+
32+
t1.join()
33+
t2.join()

0 commit comments

Comments
 (0)