semaphore

    -1热度

    1回答

    这个伪代码可以解决用餐哲学家最大平行度问题吗?这里mutex是一个二进制信号量,初始化为1.叉假定从0到(N-1)编号。总共有N位哲学家编号从0到(N-1)。 void philosopher(int i) // ith philosopher { while (true) { think(); down(&mutex); // acquire l

    -1热度

    2回答

    如果我将maxConcurrency作为10传递,下面的代码将最大并行任务限制为10?如何验证一次运行的任务数量? public BlockingCollection<Task> _workTaskQueue; public void DequeueTask(int maxConcurrency) { var tasks = new List<Task>(); using

    0热度

    1回答

    我试图在C和线程中使用bounder缓冲来模拟生产者消费者问题。 也使用互斥和信号量。 预期的输出是每次产品或消费时显示缓冲区的状态。 缓冲区大小固定为10.最初,缓冲区项全部为-1。当生产者生产一个项目时,该项目会替换-1。 第0项索引为0,第1项索引为1,依此类推.....无关紧要。 该程序询问我们想要创建的生产者和消费者的数量。 生产工作正常....但不消耗。 线程1中出现分段错误。我不确定

    -1热度

    1回答

    我有2个选项卡一个的TabBar控制器:塔巴含有ClassA和塔布含有ClassB的。我将数据发送到tabA/ClassA中的Firebase数据库,然后观察tabB/ClassB中的数据库,并将其检索到并添加到tableView中。在tableView的单元格内,我显示了当前在数据库中的运动鞋的数量。 我知道.observeSingleEvent(.value) VS .observe(.chi

    -1热度

    5回答

    我试图建立一个用户regeistration窗体,它应该检查用户是否已经存在。所以我发送一个php请求到我的mysql服务器。如果返回值为空,则用户尚未存在。 Unfortunatley我真的坚持等待这个检查完成。我尝试了几个解决方案,我发现谷歌,但没有一个工作。我当前的代码使用信号量,并将崩溃“致命错误:意外地发现零,而解包可选值”,所以信号量不会等待,直到任务完成,因为我期望它。 任何提示,将

    1热度

    1回答

    有两个信号量和两个进程。 “p1sem”表示process1在此信号量上等待并且process2发布该信号量。 “p2sem”恰恰相反。这两个进程初始化值为0(如果它们还没有被创建) 因此,process1运行两个会话打开和删除这两个信号量。 process2只运行一个会话,但应该再次调用以耗尽process1的下一个会话。这是代码的样子: 进程2: #include <semaphore.h>

    0热度

    1回答

    我的实现存在缺陷,我无法弄清楚。我有一个工作线程不一致地调用回调函数来写入名为“m_bufferLatest”的缓冲区。缓冲区需要被复制过来,并且需要一些时间才能在主线程中完成复制。所以我需要保护“m_bufferLatest”。因此,在我调用ContinuousCapture()的主线程中,我设置了一个名为“m_skipFrame”的标志,以便回调函数不会写入m_bufferLatest。 但是

    4热度

    2回答

    我已经写了一个简单的单例应用程序。 以下是我的样本主类 // ThreadsafeSingletonUsingSemaphore.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include <conio.h> #include

    0热度

    1回答

    我在objective C中使用下面的代码来处理信号量。 -(void)doSome{ semaphore = dispatch_semaphore_create(0); BaseViewController *baseVC = [[BaseViewController alloc]init]; if(baseVC.isUserObjectExist){

    3热度

    1回答

    摘要 我目前的代码再生一个很奇怪的错误我有我的软件一个小例子。它使用Boost创建3个名为信号量,并在单个线程中等待每个信号量。这工作。但是如果我改变信号量的名称(通过添加一个给定的前缀),它不会:第3个信号量无故等待无限的时间。 详细信息(源代码和行为) #include <string> #include <vector> #include <iostream> #include <bo