进程的信号量(semaphore)和线程的互斥量(mutex)本质上都是为了实现互斥,但是线程的mutex的api(pthread_mutex_xxx)相比进程的semaphore的api(semxxx())相比,简洁很多(主要是参数方面)。本质上来说,semaphore是在内核空间,而mutex是在用户进程空间定义的。对于semaphore,进程只保管semaphore的key,也就是semid,各个进程通过系统调用对指定的semid来实现semaphore变量操作;对于mutex,它是定义于进程/用户空间,从属于该进程的所有线程皆可直接访问,而pthread_mutex_xxx的接口定义了统一的访问规则,从而实现了互斥量。所以看起来更简洁~
进程的信号量&线程的互斥量
最新推荐文章于 2023-09-24 16:25:38 发布