问题标签 [semaphore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - semop 调用的 EINTR 错误
我在 php 脚本中使用以下代码片段来安全地更新共享资源。
当我用大量请求对这段代码进行压力测试时,我得到一个错误:
php 源代码显示以下获取 SYSVSEM_SETVAL 失败的代码
这意味着 semop 因 EINTR 而失败。手册页显示 semop() 系统调用被信号中断。
我的问题是我可以安全地忽略此错误并重试 sem_acquire 吗?
编辑:我误解了这个问题,请参阅我在下面发布的说明。
拉吉
multithreading - 如何在 Delphi 中实现线程安全的列表包装器?
我有一个列表包装器,它维护两个 Tstringlists 和一个 TClassList
我需要这是线程安全的,例如:
- 不允许并发写入(应进入某种等待状态)
- 不允许边读边写(反之亦然)(应进入某种等待状态)
- 允许并发读取
关于如何做到这一点的任何想法?我的直觉告诉我它需要的不仅仅是一个关键部分,也许是一个信号量或“使用计数器”,也许其中之一与 CS结合使用。
我只是不太确定从哪里开始-从英语的整体方法到伪代码,再到 delphi 实现或外部链接,将不胜感激。
queue - 是否可以仅使用 POSIX 信号量来避免唤醒等待竞赛?是良性的吗?
我想使用 POSIX 信号量来管理从代表队列的文件中获取和放置的原子。我想要在文件系统中命名某些东西的灵活性,以便完全不相关的进程可以共享一个队列。我认为这个计划排除了 pthreads。命名的 posix 信号量非常适合在文件系统中放置任何进程都可以看到的东西,但我找不到标准的 CondWait 原语:
当进程调用 CondWait 时,它会自动发布到 sem 并等待 cond。当其他一些进程发布到 cond 时,等待进程只有在它也可以自动递减 sem 时才会唤醒。的替代品
受到竞争条件的影响,其中一些其他进程在该进程等待它之前发出 cond 信号。
我几乎没有做过任何并发编程,所以我想我会问这样:如果我对条件变量使用标准的 POSIX 计数信号量,这场比赛有可能是良性的吗?
以防万一有人想要更大的上下文,我正在为可以从 shell 脚本调用的原子队列构建 get 和 put 操作。
unix - System V 和 Posix 信号量之间的差异
使用 System V 和 Posix 信号量之间的权衡是什么?
php - PHP calling multiple videos to convert at once via mencoder.How can I limit it?
I recently installed my video script to a new server but I am seeing that it will start to convert 1 video (via mencoder) then before finishing it, it will try and convery another, and another, so it will be trying to convert 4+ videos at the same time causing the server to shut down. The script developer said:
"It converts each video in a PHP background process. There might be a way to limit the number of PHP background processes on your server and queue them."
So how is this done please?
Regards
delphi - 如何判断我的程序的另一个实例是否已经在运行?
如何判断我的程序的一个实例是否正在运行?我以为我可以用数据文件来做到这一点,但它会很乱:(
我想这样做,因为我只希望在某一时刻打开 1 个实例。
javascript - Javascript信号量/测试和设置/锁定?
Javascript 中是否存在诸如原子测试和设置、信号量或锁定之类的东西?
我有 javascript 通过自定义协议调用异步后台进程(后台进程实际上在一个单独的进程中运行,与浏览器无关)。我相信我正在陷入竞争状态;后台进程在我的测试和我的设置之间返回,在 javascript 方面搞砸了。我需要一个测试和设置操作来使它成为一个真正的信号量。
这是尝试检测后台进程并将它们排队的 javascript 代码:
call 是一个实现排队的单例;任何想要调用外部进程的人都会调用 Call.call("something") 。
有任何想法吗?
c++ - Windows API“国际象棋计时器”信号量事件
有没有像国际象棋计时器一样工作的信号机,意思是;
线程 A 完成其任务,循环回到顶部并调用 Semaphore
这会触发线程 2,线程 2 继续执行其代码,循环回到顶部并调用信号量
这会触发线程 A...
所以信号量既是阻塞的又是信令的。
我知道我可以只使用两个事件和 WaitForSingleObject,但我想知道是否有专门执行此操作的信号量?
在这个主题上,Event 有多“昂贵”,WaitForSingleObject() 在内存和 CPU 方面有多“昂贵”?
java - Java 中的信号量问题与餐饮哲学家
我正在尝试在餐饮哲学家问题中学习信号量的基本要点。现在,我有一个 Chopstick 类数组,每个 Chopstick 都有一个带有 1 个可用许可证的信号量:
holder 变量用于我不确定是否需要的函数:
程序编译并运行,但似乎在释放筷子时遇到了一些麻烦。有时,筷子会松开,有时不会。当他们不释放时,程序最终会在所有筷子都被拿走并且一位哲学家饿了时挂断。
这是 Philosopher 类中的代码,用于在随机时间后释放筷子:
例如,我的程序确实输出“哲学家 0 吃完饭”,然后继续执行。另外两行从不输出,所以很明显我发布的方式有问题。
任何帮助表示赞赏。
java - Java:除了它们所属的对象之外,同步方法会锁定什么(如果有的话)?
现在,我不确定这是否是一个愚蠢的问题,如果是,请多多包涵。
对象上的锁是“递归的”吗,即如果两个对象在其字段中引用了第三个对象,并且一个线程正在两者之一上运行同步方法,那么任何其他线程都可以访问第三个对象吗?