指拥有这个锁的线程可以在执行过程中重复加锁
使用情况:存在有两个函数A和B,函数A需要调用函数B,但两个函数执行都需要使用加同一把锁来执行原子操作,若使用互斥锁,当在函数A中需要调用函数B时,由于此时函数A持有锁,需要等函数B执行完后才能解锁,而函数B需要等函数A释放锁从而阻塞等待,造成了死锁,在这种情况下,提出了重入锁,持有锁的线程可以重复加锁,并将上锁数加1,当解锁时,只有解锁的是当前线程才有作用,每执行一次解锁,上锁数减1,当上锁数为0后,线程释放锁
指拥有这个锁的线程可以在执行过程中重复加锁
使用情况:存在有两个函数A和B,函数A需要调用函数B,但两个函数执行都需要使用加同一把锁来执行原子操作,若使用互斥锁,当在函数A中需要调用函数B时,由于此时函数A持有锁,需要等函数B执行完后才能解锁,而函数B需要等函数A释放锁从而阻塞等待,造成了死锁,在这种情况下,提出了重入锁,持有锁的线程可以重复加锁,并将上锁数加1,当解锁时,只有解锁的是当前线程才有作用,每执行一次解锁,上锁数减1,当上锁数为0后,线程释放锁