前提: 有两个线程a和b
读写锁: 允许多个线程同时读取资源,但在写操作时互斥的独占资源;
互斥锁: 线程b加锁失败后,线程释放cpu,线程阻塞挂起; 同一时间仅一人能对数据进行操作.因外像排斥其他人一样,所以叫互斥锁.
自旋锁:线程b加锁失败后,它通过循环检查锁的状态来等待其他线程释放锁,而不是将线程以减少线程切换的开销;
死锁:a线程拿了a锁,想要b锁;b线程拿了b锁,想要a锁; 程序无法运行,产生无限等待的状态
递归锁:允许同一线程多次获取同一把锁.