1.概述
Posix 两种信号量:
1.命名信号量
这种信号量拥有一个名字。能够通过使用相同的名字调用 sem_open(), 不相关的进程能够访问同一信号量。
2.未命名信号量
这种信号量没有名字,相反,它位于内存中的一个预先商定好的位置。未命名的信号量可以在进程之间或一组线程之间共享。
未命名信号(也被称为基于内存的信号量)是类型为 sem_t 并储存在应用程序分配的内存中的变量。通过将这个信号量放在由
几个进程或者线程共性的内存区域中就能够使这个信号量对这些进程或者线程可用。
sem_init();
sem_destroy();
这些函数不应该应用到命名信号量上。
在 Linux 上,命名信号量被创建成小型的 Posix 共享内存对象,其名字的形式为 sem.name, 这些对象被放在一个挂载在 /dev/shm 目录
之下的专用 tmpfs 文件系统中。这个文件系统具备内核持久性---它所在的信号量对象将会持久,即使当前进程没有打开它们,但如果系统被关闭的话,
这些对象就会消失。
sem_open();
sem_post();
sem_wait();
sem_getvalue();
sem_close();
sem_unlink();
sem_trywait();
sem_timedwait();