pthread_spinlock_t的特点是高效。但是如果一个线程在获得spinlock的时候陷入操作系统内核(比如时间片超时、缺页异常)会怎么样呢?另外一个线程在获取spinlock的时候会一直占用cpu。会有一个瞬间的cpu占用率高峰?这个高峰的持续时间取决于另外一个线程何时从内核返回。当然,如果临界区很小的话,这个冲突的几率也是很小的。但是使用pthread_mutex_t就不会有这个问题,代价是线程上下文切换的开销。
pthread_spinlock_t的特点是高效。但是如果一个线程在获得spinlock的时候