semaphore 相关问题

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

没有办法限制节点并发数吗?

我一直在寻找一种方法来做到这一点: 代替: 等待 myfunc() 我想要: 限制器 = 限制器(50) 等待限制器(myfunc) 限制器不会将我的函数添加到事件队列中,而是会...

回答 1 投票 0

应该使用哪一个? “_counter += 1”或“Interlocked.Increment(ref _counter)”

多线程的时候应该使用哪一个呢? _计数器 += 1 或者 互锁.增量(ref _counter) 。 公开课演示 { 公共无效主要() { 对于 (int i = 0; i < 5; i++) ...

回答 1 投票 0

UE5 FSemaphore结构是否起到进程间同步的作用?

他们的文档上的结构描述是“进程间信号量的通用表示”,但我在网上读过其他内容,但另有说明。 他们的文档...

回答 1 投票 0

C 线程中的睡眠理发师问题

我正在尝试使用C语言和线程来解决理发师睡觉的问题。我写了一个主函数,以及线程控制的理发师和顾客函数。 由于某种原因,我的程序无法...

回答 1 投票 0

使方法不可重入的技术

我有一个 ASP.NET Core 应用程序,其异步方法具有类似这样的签名。 公共异步任务 RunAsync() { // ... } 我担心这个方法同时运行......

回答 1 投票 0

C 信号量和共享内存

我正在尝试分别使用一个生产者和一个消费者来开发经典的生产者-消费者循环缓冲区示例。 然而我遇到了一些问题,我不知道它们来自哪里......

回答 1 投票 0

使用 Goroutines 在后台注释和获取数据 – Route Handler 中信号量获取错误

我正在 Go Web 应用程序中实现文件注释过程。该过程包括读取文件、将 ID 存储在数组中、对 ID 进行分块,然后使用...

回答 1 投票 0

如何通过数据库实现信号量?

我有一个每晚需要运行的进程 - 每晚运行一次。它是一个后台服务,作为我的 Blazor 应用程序的一部分运行。我可以运行该应用程序的多个实例(横向扩展)。 基本上我...

回答 1 投票 0

如果我们在二进制信号量中没有使用 semTake 的情况下多次调用 semGive 会怎么样?会有什么行为?

我们已经使用 semBcreate 创建了一个二进制信号量。 代码片段: semTake(等待 10 秒); // 重启时只会调用一次 semGive(); //这将从多个

回答 1 投票 0

如何使用信号量实现条件变量?

不久前,我正在考虑如何相互实现各种同步原语。例如,在 pthread 中,您可以获得互斥体和条件变量,并且从中可以...

回答 2 投票 0

在 Mac OS X 中清理信号量

我有一个程序,其中一些信号量未清理,因此如果我运行它几次,程序就会出现分段错误。我曾经在linux中使用以下命令来清理它们。 ipcs -s |...

回答 3 投票 0

修改Peterson算法

我知道 Peterson Algo 的默认实现。为我提供了——互斥、进步和有限等待。 正常的彼得森算法如下。 布尔标志[0] = false; 布尔标志[1] = ...

回答 2 投票 0

使用“lock”相对于“SemaphoreSlim”有什么优势?

我迟到了,但我最近了解了 SemaphoreSlim: 我曾经使用 lock 进行同步锁定,并使用 busy 布尔值进行异步锁定。现在我只使用 SemaphoreSlim 来处理所有事情......

回答 1 投票 0

分叉的子进程使用相同的信号量吗?

假设我创建了一个信号量。如果我分叉了一堆子进程,它们仍然会使用相同的信号量吗? 另外,假设我创建一个内部有信号量并分叉的结构。做所有的事情...

回答 3 投票 0

等待子线程的信号量

我正在阅读一些考试代码,它是这样的: sem_t s; int main(int argc ,char *argv[]) { thread_t p1、p2、p3; sem_init(&s,X,X) thread_create(&p1,子级);

回答 1 投票 0

SemaphoreSlim 未按预期工作 - 允许多个线程使用相同的代码

我有一个 API 中间层,用于捕获请求、生成令牌,然后将该请求传递到预期的 API 端点。一次只能创建一个令牌,因此每个请求都需要...

回答 1 投票 0

为什么当另一个线程释放信号量时无法立即获取信号量?

这是代码: #包括 #包括 #包括 #包括 std::binary_semaphore sema{ 1 }; int main() { std::线程 th([] { ...

回答 1 投票 0

需要了解SemaphoreSlim的用法

这是我的代码,但我不明白 SemaphoreSlim 在做什么。 异步任务 WorkerMainAsync() { SemaphoreSlim ss = 新 SemaphoreSlim(10); 列表 trackedTasks = 新列表...

回答 4 投票 0

SemaphoreSlim 以某种方式破坏了 SendAsync?

我有一个相当复杂的案例...我正在从其他API调用我自己的API。我一次这样做 6 次。在第一次调用期间,我需要获取访问令牌并将其缓存,以便所有其他请求...

回答 1 投票 0

等待 posix 信号量上的零值

使用 SystemV 信号量 API,我可以等待给定信号量为零(或增加),但我没有找到与 POSIX API 类似的任何内容。 让我解释一下上下文。 我有一个主流程...

回答 1 投票 0

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