Bash   发布时间:2022-05-13  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Semop:当减少一组信号量时,所有信号量都会立即递减或者在第一次失败时是否会阻塞?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,如果我有一个信号量集semid与num_of_sems信号量和sembuf * deleter_searchers_down

struct sembuf *deleter_searchers_down 
                        = malloc(sizeof (*deleter_searchers_down) * num_of_sems);
for (i = 0; i < num_of_sems; ++i) {
            (deleter_searchers_down + i)->sem_op = -1;
            (deleter_searchers_down + i)->sem_num = i;
            (deleter_searchers_down + i)->sem_flg = SEM_UNDO;
        }
semop(semid,deleter_searchers_down,num_of_sems);

对semop的调用将尝试立即降低集合中的所有信号量,或者一旦它试图降低0的第一个信号量并且在某个特定信号量的某些其他进程之后继续,它是否会阻塞?

解决方法

在所有更新都可以作为一个单元进行之前不会发生更新

关于这一点,POSIX规范可能更清楚,尽管它确实说semop是原子的.

在Linux上,glibc中的semop(3)是semop(2)的简单包装器. semop(2)手册依次说

HP-UX semop(2)联机帮助页更加清晰:

大佬总结

以上是大佬教程为你收集整理的Semop:当减少一组信号量时,所有信号量都会立即递减或者在第一次失败时是否会阻塞?全部内容,希望文章能够帮你解决Semop:当减少一组信号量时,所有信号量都会立即递减或者在第一次失败时是否会阻塞?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:所以