semaphore 相关问题

信号量是一种同步原语,用于跟踪有限数量的资源中有多少可用。

在 Python 线程中模拟取消令牌

我刚刚用Python写了一个任务队列,其作用是限制一次运行的任务数量。这与 Queue.Queue 有点不同,因为不是限制可以有多少个项目......

回答 4 投票 0

使用共享内存的服务器-客户端模型

我有以下程序,但无法使其在客户端和服务器之间正确同步。 运行后,我的程序总是以客户端和服务器之间的冲突而告终,试图...

回答 1 投票 0

SemaphoreSlim 等待优先级

我想知道 SemaphoreSlim 在调用 Await 时是否有类似优先级的东西。 我找不到任何东西,但也许以前有人做过类似的事情。 这个想法是,如果我

回答 2 投票 0

跨 32 和 64 位进程的 POSIX 信号量

我正在尝试使用信号量同步2个进程。第一个进程是32位,第二个是64位。 在Windows下,我使用CreateSemaphoreA、WaitForSingleObject和ReleaseSemaphore API。它适用于...

回答 1 投票 0

vkAcquireNextImageKHR 为 VK_SUBOPTIMAL_KHR 后如何重新创建交换链?

这个 vulkan 教程讨论了交换链重建: 如果交换链不是最优的,您也可以决定[重新创建交换链],但我选择在这种情况下继续进行,因为......

回答 2 投票 0

什么时候调用sem_unlink()?

我对 Linux API sem_unlink() 有点困惑,主要是何时或为何调用它。我在 Windows 中使用信号量已经很多年了。在 Windows 中,一旦关闭命名信号量的最后一个句柄...

回答 3 投票 0

Semaphore/Ansible 默认以 root 身份运行命令

因为我在 Ansible/Semaphore 方面是菜鸟,所以我需要帮助。 我从这个链接安装了信号量: RL8 上的信号量安装 该服务正在运行,我已经创建了使用...

回答 1 投票 0

子进程不会修改父进程中的统计信息

我正在开发一个涉及多个进程(包括子进程和父进程)的 C 应用程序,并且我尝试使用共享内存和信号量在它们之间共享统计信息。怎么...

回答 1 投票 0

使用 Task.WhenAny 等待 SemaphoreSlim 上的容量

我有一个异步处理管道。我正在实施一个约束,以便我需要限制下一阶段的提交数量。对于我的组件,我有: 单个输入源(项目是

回答 2 投票 0

使用命名管道作为从 PowerShell 脚本到 C# 表单的信号。无法让它工作

我有一个 PowerShell 脚本,应该在计算机上安装和配置内容。由于该脚本在本地系统下运行,因此本地用户完全看不到该脚本,然后我...

回答 2 投票 0

在 Python 中使用带有 asyncio 的信号量

我试图限制使用信号量运行的同时异步函数的数量,但我无法让它工作。我的代码归结为: 导入异步 异步定义发送(i): 打印(常见问题...

回答 2 投票 0

systemd 服务守护进程和 /dev/shm

我有一个 systemd 服务文件,它启动一个用 C++ 开发的应用程序,该应用程序使用以下命令创建信号量 access_sem = sem_open("/sync_nvme_access_sem", O_CREAT, 0666); 如果(access_sem ==

回答 1 投票 0

OS X 上的 sem_init

我正在编写一些使用pthread和信号量库的代码。 sem_init 函数在我的 Ubuntu 机器上工作正常,但在 OS X 上 sem_init 函数完全没有效果。有吗

回答 3 投票 0

我应该在线程池调度程序中使用信号量还是条件变量?

我不确定我是否应该使用 std::semaphore 或 std::condition 变量来处理线程池系统中的线程等待。 我认为使用信号量并增加它的风险很低

回答 2 投票 0

使用具有数千甚至数百万条目的 `ConcurrentDictionary<String, SemaphoreSlim>` 仅锁定特定键

使用具有数千甚至数百万条目的 ConcurrentDictionary 仅锁定特定键是否合理?也就是说,像 私人静态只读

回答 1 投票 0

是否填充 C 结构内的信号量 (sem_t) 以尊重对齐?

我目前正在用 C(在 Ubuntu x64 中)定义一个结构。它看起来像这样: #包括 #包括 #包括 typedef 结构键{ sem_t sem; 炭

回答 1 投票 0

是否在 C 结构中填充了信号量 (sem_t) 以尊重对齐?

我目前正在用 C(在 ubuntu x64 中)定义一个结构。它看起来像这样: #包括 #包括 #包括 typedef 结构键{ sem_t sem; 炭

回答 1 投票 0

如何释放semaphoreslim?

我使用 SemaphoreSlim 作为我的锁机制。在我的代码中,我不知道释放信号量哪个代码更有效? 这是信号量实例化: 私有静态只读信号量...

回答 1 投票 0

信号未收到超过一次

我有使用信号量、信号和共享内存的程序。最后一个客户端循环有问题。信号 SIGINT 被发送到进程,处理程序运行,但只是第一次。下次杀人的时候...

回答 0 投票 0

为什么我能够创建模式为 000 的文件并使用开放系统调用在 C 中写入它?

根据我的理解,000 权限意味着除了 root 用户之外,没有人能够读取或写入该文件。为什么下面的代码有效? #包括 #包括 根据我的理解,000 权限意味着除了 root 用户之外,没有人能够读取或写入该文件。为什么下面这段代码有效? #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <string.h> int main(void) { char *message = "Hello world\n"; int fd = open("greeting.txt", O_CREAT | O_WRONLY, 0000); write(fd, message, strlen(message)); close(fd); } 此外,当我使用 sem_open(sem_name, O_CREAT, 0000, 1); 创建命名信号量时,即使文件权限设置为 000,父进程和所有子进程都能够修改它。 我对低级 C 系统调用和信号量的理解是有限的,因此需要一个全面的解释。 来自 man open https://man7.org/linux/man-pages/man2/open.2.html : Note that mode applies only to future accesses of the newly created file; the open() call that creates a read- only file may well return a read/write file descriptor.

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.