教育集团网站设计策划书,wordpress主题seven,c2c电商平台有哪些家,平面设计专业就业前景和就业方向可重入 可重入是多线程并发编程里面一个比较重要的概念#xff0c;简单来说#xff0c;就是在运行的某个函数或者代码#xff0c;因为抢占资源或者中断等原因导致函数或者代码的运行中断#xff0c;等待中断程序执行结束后#xff0c;重新进入到这个函数或者代码中运行简单来说就是在运行的某个函数或者代码因为抢占资源或者中断等原因导致函数或者代码的运行中断等待中断程序执行结束后重新进入到这个函数或者代码中运行并且运行结果不会受到影响那么这个函数或者代码就是可重入的。 可重入锁 而可重入锁简单来说就是一个线程如果抢占到了互斥锁资源在锁释放之前再去竞争同一把锁的时候不需要等待只需要记录重入次数。在多线程并发编程里面绝大部分锁都是可重入的比如 Synchronized、ReentrantLock 等但是也有不支持重入的锁比如 JDK8 里面提供的读写锁StampedLock。 public static synchronized void lock1(){// ThreadX 获取到了lock1中的Synchronized锁// 再次调用另外一个加同步锁的lock2()方法lock2();
}
public static synchronized void lock2(){//doSomething
} 锁的可重入性主要解决的问题是避免线程死锁的问题。 因为一个已经获得同步锁 X 的线程在释放锁 X 之前再去竞争锁 X 的时候相当于会出现自己要等待自己释放锁这很显然是无法成立的。