semaphore

    1热度

    1回答

    我有这种情况下,我有一个WebApi和一个端点,当被触发时做了很多工作(大约2-5分钟)。这是一个带有副作用的POST端点,我想限制执行,以便如果发送2个请求到这个端点(不应该发生,但是比对不起更安全),其中一个请等待以避免竞争条件。 我第一次尝试使用一个简单的静态锁控制器内是这样的: lock (_lockObj) { var results = await _service.Lon

    0热度

    1回答

    我尝试了解同步如何在Linux内核中工作。 我读过信号量可以用于例外,但我无法找到一个情况的例子,信号量是需要的。 那么为什么在单处理器系统中使用信号量呢?

    0热度

    1回答

    我想在父进程和子进程之间共享一个带有一些Event()变量的字典,但不知道如何。请注意,我需要在进程启动后添加或删除(键值)。似乎下面的正常词典和多处理.Manager.dict都不能满足我的要求。 import time from multiprocessing import Process, Event, Manager manager = Manager() d1 = manager

    1热度

    1回答

    拿这个伪代码, Semaphore S <- 0 non-critical section wait(S) critical section signal(S) 这是否解决了关键的部分问题,相互支持,仅排斥? 我知道自从临界区永远不会到达死锁状态,但是这也意味着它不支持互斥。

    0热度

    1回答

    我有一个项目,我必须写伪信号量,从下面的文字: “考虑在一个单一的出租车正在曼联和利物浦的支持者从市中心到周六足球比赛的场景。出租车一次可带四名支持者,携带支持者时总是满员,但在出租车中只有一名支持者独立分开时,情况绝不允许出现,出租车进行多次出行当它第一次到达时,它随机发出信号给两个等待支持者队列中的一个队列,你可以假设每个队列中有一个或多个支持者在发信号时等待,当一个支持者进入出租车时,还有一

    2热度

    1回答

    我想让两个进程修改一个公共变量,同时相互排斥。我希望形成这段代码的输出是 或 ,但我不断收到 1. 我试图把过程进入梦乡前关键部分,但他们总是以相同的速度执行所有步骤并一起进入关键部分。我该如何解决它? #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/sem.h> #include <sys/

    0热度

    1回答

    我有2个进程同步的问题。我有3个X进程和5个Y进程。我也有2个资源 - A和B. 资源'A'可以被最多3个进程同时使用,并且通过访问资源'B'互斥是必要的。 进程X和Y: void processX() { while (1) { AccessToResource(B); AccessToResource(A); } } void p

    0热度

    1回答

    我正在学习如何在Racket中实现信号灯和倒数锁存器。 现在我正在使用球拍文档,但我没有发现它们非常有用。 您会在解决死锁,竞态条件和其他并发问题的同时,推荐能够在整个学习过程中帮助我的任何网站,教程,教科书和视频吗?你的帮助是极大的赞赏:)

    1热度

    1回答

    当使用信号量时,通常为了强化线程之间的同步,我觉得将信号量初始化为零是很有用的。 以这种方式,我可以让一部分代码在另一个线程在信号量上发出信号后才执行。 这也可以用互斥锁来实现吗? 我解释得更好:当我初始化一个Posix Mutex(例如通过pthread_mutex_init(&mutex,NULL))时,它通常在解锁状态下被初始化,所以第一个线程试图锁定它会成功。 我想知道是否有一种方法来初始

    2热度

    3回答

    我需要关于如何处理在我的应用中刷新的oauth2令牌的建议。 我正在使用GRPC将我的http请求发送到我使用oauth2令牌连接的API(它在1小时后过期)。 发动每一个请求之前,我检查令牌: 截至到最新的吗?发射网络请求 过期?推出refreshToken - >推出networkRequest 一切似乎运作良好,但在某些情况下,我的客户“丢失”的标记。 问题是,对于2个请求A & B推出在完