- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试通过信号量在 Mac OS X 中为一堆线程实现共享内存的同步使用。
(我只是忽略了一个事实,即 Mac 用户在初始化和销毁信号量时遇到了很多问题......,可以通过 sem_open() 和 sem_unlink() 修复):D
但显然要获取信号量的当前值,除了 sem_getvalue() 之外别无他物,它尚未在 mac os x 中实现。
对于没有运行 linux 操作系统并且应该在几个小时内上传作业的人有什么建议吗??!:)
谢谢
最佳答案
我想您是在问,“我该如何解决 OS X 上缺少 sem_getvalue()
的问题?”
我可以想到三种方法:
首先(在我看来最好)重新设计您的程序,以便永远不需要信号量的当前值。毕竟,as the documentation warns ,sem_getvalue
报告的值在收到时不一定准确。
其次,如有必要,包装 POSIX 信号量函数并保留您自己的计数。每个 sem_t
都可以由一个计数器和一个保护该计数器的互斥锁来装饰。您的实现可能会有(并且可能应该有!)与 sem_getvalue
相同的警告,即一旦检索到计数,就不能相信它是准确的。
第三,在我看来也是最不受欢迎的,切换到更老更复杂的 SysV semaphore IPC界面。这实现了类似于 sem_getvalue
的东西。
关于c++ - Mac OS X 中的 sem_getvalue() 功能障碍 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16655153/
我在这里包含了整个代码,它是视差网站(所有 css)的骨架,带有滚动菜单(jQuery),根据 div ID 显示当前位置。 视差 CSS 和菜单 jQuery 分开时工作得很好,但结合起来时就会出现
我正在尝试通过信号量在 Mac OS X 中为一堆线程实现共享内存的同步使用。 (我只是忽略了一个事实,即 Mac 用户在初始化和销毁信号量时遇到了很多问题......,可以通过 sem_open
我是一名优秀的程序员,十分优秀!