对于线程同步:互斥量、信号量、读写锁、条件变量。(1)互斥量:mutex值只能取0或1,加锁lock(减1),解锁unlock(加1),对于临界区先加锁后解锁,相当于一个时刻只有一个线程能访问临界区。(2)信号量:是互斥量的加强版,资源个数n可以预设,加锁(sem_wait),解锁(sem_post),区别:信号量某一时刻最多n个线程访问临界区。(3)条件变量:目的是为了防止恶意竞争,与互斥量一起使用,互斥量失败后会一直尝试,与其这样,还不如让它去睡觉,当临界区可用才唤醒它(pthread_cond_signal)。(4)读写锁:写锁(pthread_rwlock_wrlock)权限高于读锁,有人在写,其他读和写全部阻塞;允许多个读(pthread_rwlock_rdlock),应用在读线程多的场景
点赞

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务