race-condition

    -1热度

    3回答

    以下是有关如何防止竞争条件的答案。 What is a race condition? 最好的事情是创建无副作用和无状态 功能,使用immutables尽可能。但这并不总是 可能。因此,使用java.util.concurrent.atomic,并发数据 结构,适当的同步和基于角色的并发将帮助 。 这个答案说尽可能地使用immutables。我很困惑不变的对象如何防止竞争条件。

    4热度

    1回答

    有没有什么条件下使用典型自动增量字段在表中创建的记录可用于读序列? 例如,当值为9的记录对于选择查询还不可见时,选择查询的结果中是否会出现值为10的记录? 我的问题的目的是...我想知道如果使用从一个查询中检索到的最大值作为下限来确定以后未查询的值,或者可能会错过一行,是否可靠? 如果这种竞争条件在某些情况下是可能的,那么是否有任何隔离级别可以用于对这个问题不产生影响的选择查询?

    0热度

    1回答

    我已经上传了一些代码在git集线器,可以在这里找到: https://github.com/Shaunus87/SyncTest其中包括我的原型代码和我的单元测试它。 我基本上宣告我的同步码,挂钩事件,调用最终会调用事件的方法,并断言该事件是否被称为与否: bool called = false; var testBinsToVend = GetRoboBins();

    0热度

    1回答

    我已经阅读了很多次,我应该避免共享状态以避免异步编程或多线程竞争条件。 因此,举例来说,如果我有一个程序,它从外部服务器保持获取数据和更新的对象在内存和用户的请求,请发送对象从内存。 我将如何改变这样的程序不使用共享状态的行为? 我想不出任何有意义的方法。我误解了不使用共享状态的想法吗?

    3热度

    1回答

    我有一个非常基本的Golang应用程序,它可以创建并运行HTTP服务器。服务器有2个端点,一个发送数据和一个接收。 在每次POST请求发送到服务器,解析从主体输入的数据并将其推入的信道。然后我有一个函数可以读取通道并将数据保存到地图中。 在每个GET请求到服务器,JSON编组地图并将其发送到客户端。 每个请求的HTTP服务器异步运行,工人功能在其自身的goroutine同步写入地图。 基本伪代码如

    3热度

    2回答

    为了让事情变得简单并且为了专注于我的问题的核心,让我们假设由指针变量ptr在本地寻址的内存位置在几个进程之间共享。我特别使用C/++中的MPI共享内存窗口来分配和共享内存。要具体,让我们说ptr引用一个浮点变量,所以在当地我们有 float* ptr; 现在假设所有进程尝试写入相同的值const float f到PTR,即 *ptr = f; 我的问题是:考虑到所有进程试图以相同的方式修改

    0热度

    1回答

    我正在使用带有通用DVB-T标签的rtl_sdr(调谐器是FC0013)来编写模拟FM收音机的搜寻程序。代码大多取自rtl_power.c和rtl_fm.c。 我的做法是: 调谐到新的频率 收集几样 中测量RSSI,并将其存储 执行相同的下一个频率 一旦检测到高于某个阈值的局部峰值,调谐到检测到的频率。 问题是我无法可靠地将样本映射到收集频率。下面是相关的(伪)代码片段: /* freq is t

    -1热度

    1回答

    非常简单的计算内核:tmp = X * y; tmp = sigmoid(temp)-L; Y =转置(X)* TMP;但是,有时会返回正确的结果,有时会返回错误的结果,有时对于1000 * 1000大小的问题,它会返回正确的结果,但是当我增加问题大小时,它会返回错误的结果。看起来它有一些竞争条件。但所有数据都受到tid的限制。你能帮我找出错误! 谢谢! #include <stdio.h>

    3热度

    2回答

    我有两种复制文件的方法,哪一种是pythonic/best版本最多的? 在通过一个面向对象的教科书的工作中,我被告知(在这里解释)最好避免检查和处理'异常情况'出现时。我在第二版中使用try/except的方式是否有效? 使用if/else第一版本:使用try/except if os.path.exists(dest): print("\nCopying zipfile to {}".

    2热度

    1回答

    我在尝试使用MSBuild构建时遇到了一个奇怪的问题。 我正在使用MSBuild构建一个解决方案文件,并将/ m(并行构建)和BuildProjectReferences设置为true。 假设在sln文件中有A.vcxproj和B.vcxproj,B的项目引用为A. 会发生什么事情A项目开始先构建,而在编译过程中,B项目开始构建另一个项目进程(因为并行构建),它会调用building A. 现在这