我可以让sem_t(信号量)对象获取大于1的值吗?因为sem_post只增加1.是否有sem_set?
答案 0 :(得分:1)
是的,sem_t的值可以大于1.您可以使用sem_init
将信号量初始化为abitrary值。引自this link:
要初始化信号量,请使用 sem_init():
int sem_init(sem_t *sem, int pshared, unsigned int value);
- sem指向一个信号量对象 初始化
- pshared是一面旗帜 表明是否 信号量应与之共享 fork()ed进程。 LinuxThreads的确如此 目前不支持共享 信号量
- value是初始值 将信号量设置为
的例子 使用方法:
sem_init(&sem_name, 0, 10);
我不知道任何可以将sem_t增加任意值的函数。