semaphore相关内容

SemaphoreSlim.WaitAsync如何允许异步函数的顺序执行?

此问题的上下文是WPF应用程序.WPF应用程序使用DispatcherSynchronizationContext. 如果我的应用程序中有一个调用Button_Click处理程序方法的按钮,并且我想确保该函数中的所有代码仅由一个线程执行,我会将其包装为一个信号量,如图所示?但是我不明白这是如何工作的. 假设单击了按钮,我们将点击WaitAsync(),它返回一个在输入信号量时完成的任务 ..
发布时间:2021-04-12 19:09:23 C#/.NET

asp.net核心中的排队任务

例如功能的实现有20个用户,他们几乎一次单击了发送按钮,因此在队列中堆叠的方法和发送第一个用户消息并接收响应的方法,在第二个,第三个之后,依此类推.用户不会与其他人聊天,但会使用响应速度非常快的设备 因此,我试图将发送消息的Task排队. 我发现了使用Task排队的代码示例,如示例1 和示例2 所示. 示例1 公共类SerialQueue{只读对象_locker = new objec ..
发布时间:2021-04-10 19:44:35 C#/.NET

.Net Core Async关键部分(如果在同一实体上工作)

我需要确保通过Web API访问的方法如果在具有相同ID的同一对象上运行,则不能同时通过多次调用访问 我了解 SemaphoreSlim 的用法,但是对此的简单实现将锁定所有人的关键部分.但是,只有在该部分适用于同一实体而不适用于2个不同的对象时,我才需要锁定该部分 这是我的情况,一个用户开始工作,创建实体并准备对其进行修改,然后一个或多个用户可以操纵该实体,但是这种操纵的一部分必须在 ..
发布时间:2021-04-02 18:45:52 C#/.NET

TPL数据流与普通信号灯

我需要进行可扩展的流程.该进程主要具有I/O操作,并具有一些次要的CPU操作(主要是反序列化字符串).该过程在数据库中查询URL列表,然后从这些URL中获取数据,将下载的数据反序列化为对象,然后将其中的某些数据持久化为crm动态文件以及另一个数据库.之后,我需要更新第一个处理了URL的数据库.部分要求是使并行度可配置. 最初,我想通过一系列等待任务来实现它,并使用Semaphore限制并行度 ..
发布时间:2021-04-01 20:28:02 C#/.NET

Java中的分布式计数信号量

我正在寻找一种分布式信号量实现(以postgres/zookeeper作为存储),该实现类似于java.util.concurrent.Semaphore的概念,该概念将维护一组许可,这些许可将使用acquire()获取并发布使用release()允许我限制对某些资源的访问或同步某些执行.唯一的区别是,此信号量应允许我跨多个jvm执行所有这些操作. 如果在Java中有任何此类实现或用于实现该 ..
发布时间:2021-02-10 18:59:21 Java开发

在多个进程之间共享POSIX信号量

我需要创建两个子进程,每个子进程都会调用execvp进行分叉,并且可执行文件之间共享POSIX信号. 我需要创建共享内存还是只实现命名信号量? 我从以下链接中得到了两个答案: 分叉的子进程是否使用相同的信号量? 如何使用共享内存在进程之间共享信号量 但是我对如何进行实施感到困惑. 解决方案 我需要创建共享内存还是只实现命名 信号量? 这两种方法都行得通. ..
发布时间:2021-02-08 19:44:24 其他开发

进程之间的预定义抢占点

我分叉了许多子进程,并为每个子进程分配了优先级和核心.流程A的执行时间为3秒,流程B的执行时间为6秒.我希望它们以这样一种方式执行:较高优先级的进程应仅在预定义的点抢占较低优先级的进程,并尝试通过信号量来实现.我在两个进程中都使用了相同的代码片段,但两个代码中的数组值都不相同. 'bubblesort_desc()'对数组进行降序排序并打印. "bubblesort_asc()"以升序排序并 ..
发布时间:2020-11-09 23:32:45 其他开发

Android:等待firebase valueEventListener

我正在尝试使用信号量来等待我的Firebase valueEventListener.我有一个用户信息活动,其中包含用户必须填写的6个不同字段.当用户保存他/她的信息时,我要进行“全部或全部"检查.某些用户信息不能重复...例如用户名,电子邮件和电话号码.我使用的是Firebase,目前的一般想法是采用以下格式: void saveUserInfo(){ if(field1 exis ..

FIFO信号量测试

我已经实现了FIFO信号量,但是现在我需要一种方法来测试/证明它们工作正常.一个简单的测试是创建一些线程,这些线程尝试等待一个信号量,然后打印一条带有数字的消息,如果这些数字是按顺序排列的,则应该使用FIFO,但这不足以证明这一点,因为该顺序可能具有偶然发生.因此,我需要一种更好的测试方法. 如有必要,也可以使用锁或条件变量. 谢谢 解决方案 用句子"描述的内容,但这不足以证明它是正确 ..
发布时间:2020-11-05 18:38:33 其他开发

我是否需要处置SemaphoreSlim

根据文档: “ a SemaphoreSlim 不使用Windows内核信号”。 SemaphoreSlim 是否使用任何特殊资源,因此对当 SemaphoreSlim 将不再使用时,调用处置? 解决方案 是。 它可能使用 ManualResetEvent SafeWaitHandle 是 SafeHandle ,它具有不受管理的句柄。 您可以在此处的参考源中看到它 ..
发布时间:2020-10-22 06:11:38 C#/.NET

显示带有信号量的死锁的简单示例

我目前正在使用操作系统,我们的老师为我们的实验室分配了此问题,但他的帮助不是很大。因此,我需要显示带有信号量的死锁的基本示例,并且我的输出需要演示死锁的发生。我假设他的意思是如果发现我的例外情况。距离我已经近了。 import java.util.concurrent.Semaphore; public class deadlockTest2 { private Semaphor ..
发布时间:2020-10-19 04:17:05 Java开发

什么是计数信号量?

嗨,我确实知道计数信号量是如何工作的?请帮助我理解。 根据我的理解,如果我们将count设置为3,则进程可以使用3个线程来访问资源。因此,这里只有3个线程可以访问资源。当1个线程离开时,另一个等待线程进入。如果我的理解是正确的,那么这3个线程也会破坏共享数据。那么,它的用途是什么? 解决方案 您的观察是正确的;通常,资源要么需要限制为一个线程(例如,正在被写入),要么可以安全地与无限 ..
发布时间:2020-10-10 21:07:49 其他开发

ABAddressBookRequestAccessWithCompletion iOS 7和信号灯

根据我的收集,此代码之前已发布过,并且也已使用过。我处于一种情况,需要知道我是否可以访问联系人之前,代码无法继续。 在Xcode 5.0.2和iOS 6上 可以正常工作。在iOS 7上,它会永远挂起,然后当我杀死该应用程序时,会出现对话框,要求允许访问联系人。 ABAddressBookRef addressBook = ABAddressBookCreate(); __bl ..
发布时间:2020-10-08 20:17:57 移动开发