C 如何将POSIX sem\t信号量增加1以上?
我可以让sem_t(信号量)对象的a值大于1吗?由于sem_post仅增加1。是否有扫描电镜集?是的,扫描电镜的值可以大于1。您可以使用C 如何将POSIX sem\t信号量增加1以上?,c,pthreads,semaphore,C,Pthreads,Semaphore,我可以让sem_t(信号量)对象的a值大于1吗?由于sem_post仅增加1。是否有扫描电镜集?是的,扫描电镜的值可以大于1。您可以使用sem_init将信号量初始化为一个二进制值。引述自: 要初始化信号量,请使用 sem_init(): sem指向一个信号量对象 初始化 pshared是一面旗帜 指示 信号量应与共享 fork()是一个复杂的进程。LinuxThreads有 当前不支持共享 信号量 值是一个初始值 将信号量设置为 举例 使用: 我不知道有任何函数可以将sem\t增加任意值
sem_init
将信号量初始化为一个二进制值。引述自:
要初始化信号量,请使用
sem_init():
- sem指向一个信号量对象 初始化
- pshared是一面旗帜 指示 信号量应与共享 fork()是一个复杂的进程。LinuxThreads有 当前不支持共享 信号量
- 值是一个初始值 将信号量设置为
我不知道有任何函数可以将sem\t增加任意值 另请参见这个问题,可能重复:pshared不会使信号量与分叉的子级共享。只有在已经共享的内存中创建信号量时,它才有用,在这种情况下,pshared信号量可以与任何其他可以映射共享内存的进程共享,而不仅仅是子进程。
int sem_init(sem_t *sem, int pshared, unsigned int value);
sem_init(&sem_name, 0, 10);