Answers
既然你加了一个Linux的标签,那我就假设你专指Linux下的程序。
Linux下没有“临界区/Critical section”和“事件/Event”,所以这两个可以出局了。
原子操作/Atomic operation
不能阻塞线程
,所以如果你需要让一个线程等待什么东西的时候就不能用,它只适合用来保证数据一致性。
自旋锁/spinlock是一个用忙循环“阻塞”线程的锁,在等待过程中会占用CPU,所以如果你需要让一个线程长时间等待什么东西的时候就不合适,仅适用于“阻塞”是极小概率事件时,因为spinlock不会出让CPU,所以如果条件几乎总是满足,可以减少线程切换,另外它也
不能用于进程同步
,只适用于同一进程内的线程。
好了,只剩下互斥体了,它能干什么你知道的。
人民币战士
answered 10 years, 4 months ago