原子操作有什么作用?
原子操作可以保证指令以原子的方式执行——执行过程不被打断
有哪些原子整型操作函数?
原子性和顺序性各有什么作用?
- 原子性确保指令执行期间不被打断,要么全部执行完,要么根本不执行
- 顺序性确保即使两条或多条指令出现在独立的执行线程中,甚至独立的处理器上,它们本该的执行顺序要保持。
有哪些原子位操作函数?
自旋锁有哪些特点?
- 最多只能被一个可执行线程持有
- 在任意时间都可以防止多于一个的执行线程同时进入临界区
- 同一个锁可以用在多个位置
- 加锁时间不长,不允许睡眠
- 如果自旋锁被争用,请求自旋锁的线程会以忙循环旋转的方式等待锁可用(占用处理器)
- 如果自旋锁未被争用,请求自旋锁的线程会立即得到锁
自旋锁有哪些使用方法?
信号量有什么特点?
- 最多只能被一个可执行线程持有
- 在任意时间都可以防止多于一个的执行线程同时进入临界区
- 加锁时间长,允许睡眠
- 如果信号量被争用,请求信号量的任务会进入一个等待队列并睡眠(释放处理器)
- 如果信号量未被争用,等待队列中的任务会被唤醒,并获得该信号量
信号量有哪些使用方法?