a.加锁定义
当某个进程进入临界区,它将持有某种类型的锁。
b.linux有几种加锁,什么情况下会加锁
1.linux有自旋锁、死锁、互斥锁等。
2.一般用于访问共享数据是才用锁。避免多个线程同时访问同一个全局变量时数据会被破坏。
c.linux不同的锁定义和区别
自旋锁:它是为实现保护共享资源 而提出一种锁机制,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁。
死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁。
互斥锁:引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。