线程互斥:实质某一资源同时只允许一个访问者对其进行访问,具有唯一性和排他性。
import threading
import time
g_lock = threading.Lock()
def func():
global tmp
global g_lock
g_lock.acquire()
for i in range(20,40):
tmp = i]
print “%s:tmp = %d”%(threading.currentThread(),getName(),tmp)
time.sleep(1)
g_lock.release()
p.join()
- 线程死锁:死锁就是系统进入到一种阻塞的,无法移动的状态。
- 死所出现情况:一个线程占有锁之后又去占有锁。
- 占有锁后,忘记释放。
- 占有锁,然后调用其他函数又去占有锁。
- 线程死锁避免,代码书写小心,保证占有和释放成对出现。
- 线程饿死:一个线程长时间得不到需要的资源而不能执行的现象。
- 线程饿死避免:线程队列,或者结合其他同步方式。
时间: 2024-10-11 07:39:17