semaphore

    1热度

    1回答

    我从System.Net.HttpClient类派生实现处理令牌检索和重新搜索的客户端。客户端使用所有必需的验证参数进行初始化,并可能同时使用。在这种情况下,我需要防止客户端请求多个令牌(针对不同的请求)。 我不知道我的代码是否会导致一个WPF应用程序死锁如果用户启动调度线程上多个Web请求(因为信号量是不可重入的,所以调度线程可能在等待被阻止在信号量上,并且如果分派器线程被阻塞,原始任务可能无法

    0热度

    1回答

    我wan't阻止进程之间的一些代码,它主要是针对我的UWP应用程序,但因为它是一个跨平台的项目,这段代码也对Android应用程序执行: if (!Semaphore.TryOpenExisting("some_name", out _semaphore)) _semaphore = new Semaphore(1, 1, "some_name"); 其中_semaphore是: p

    0热度

    1回答

    3消费者2生产者。读取和写入一个缓冲区。 生产者A推动1个元素缓冲(长度N),生产者B推动2个元素缓冲。没有主动等待。我不能使用System V信号量。对于A公司 示例代码: void producerA(){ while(1){ sem_wait(full); sem_wait(mutex); Data * newData = (Data*) mallo

    0热度

    1回答

    我有一个与生产者和消费者有关的问题。我有1个生产者和3个消费者。制作人出示我放在队列中的信件,消费者拿着这封信。据认为,当两个消费者接受信件时,信件已经从队列中移除,但是有一个选项,消费者A和消费者C不能接受同一封信(可能A会先写信,那么con。B将首先采用第二或con。B,然后con C(或A)秒,但当A和C在一起时不可能)。 我写了一个解决这个问题的代码,但是现在我不能从函数中打印任何东西。

    6热度

    1回答

    我看过这表明SemaphoreSlim将限制一段代码,以通过每次只有1线程运行,如果您将其配置为SemaphoreSlim SemaphoreSlim MSDN 文档: SemaphoreSlim _semaphoreSlim = new SemaphoreSlim(1, 1); 然而,这不是” t表示是否停止相同的线程访问该代码。这与异步和等待。如果在方法中使用await,则控制权将离开该方

    0热度

    2回答

    我正在Raspberry Pi 2上进行一个rospy项目。 pyhton脚本需要在接收到消息时启动一个线程,并循环它直到另一个消息接收。 但是由于这些线程需要访问硬件,所以每次收到新消息时都应该停止旧线程。 我建立了我自己的锁定系统,但是当充斥着消息时它失败了。 现在我正在研究信号量,但要么我不太了解它们的工作方式,要么我需要别的东西,但类似于信号量。 目前我的代码看起来是这样的: def so

    0热度

    1回答

    我有实现,其中我有这样的场景中C代码的 我有一个二进制code被执行时,汽车无写入到一个名为log.txt文件。现在在同一时间我打开终端2并再次运行code二进制文件,这也将同时写入文件log.txt 我想防止这种情况。我的逻辑是,当第一个二进制文件工作并写入文件log.txt时,二进制文件的第二个执行实例也需要在log.txt文件上编写,但它应该被阻止..我可以实现哪些选项来执行这个 ? 我打算

    1热度

    1回答

    我正在研究一个问题,我应该实现一个哲学家哲学范式的例子。 注意:是的,这是一个家庭作业,在任何人问之前。 虽然我不是要求解决方案。我很困惑,因为我的老师在下面提供的这个Philosopher函数在理论上应该工作。 wait和signal是C语言中用于OS系统调用的函数。 我一直在使用包括他们: /* Wait and Signal */ #include <signal.h> #include

    1热度

    1回答

    当我在NodeJS中使用Google Cloud服务时,我必须访问像存储中的资源,并且在我第一次调用它们时,我必须检查它们是否存在,如果不存在, 。 好吧,如果多个资源在应用程序的开始时访问同一个存储桶,他们会尝试同时创建它。 为了防止踩踏我不得不使用这样的事情: getStorage(id) { return new Promise((resolve, reject) => {

    0热度

    1回答

    在classical producer-consumer problem中,当共享缓冲区已满且使用者等待共享缓冲区为空时,我们有生产者等待。我们有两个posix线程,一个生产者和其他工作者,使用sem_wait和sem_post为空信号量和完整信号量(两个计数信号量)相互同步。因此,信号量实现生产者 - 消费者代码看起来如下: procedure producer() { while (