concurrency相关内容

ArrayDeque 和 LinkedBlockingDeque

只是想知道为什么他们制作了一个 LinkedBlockingDeque 而相同的非并发对应物是一个 ArrayDeque 它支持一个可调整大小的数组. LinkedBlockingQueue 使用一组节点,例如 LinkedList(即使没有实现 List). 我知道使用 ArrayBlockingQueue 的可能性,但如果想使用 ArrayBlockingDeque 怎么办?为什么 ..
发布时间:2022-01-21 12:30:38 Java开发

在 php 和 postgres 中排队

我想找到一种使用 postgres 和 PDO (php) 来实现作业队列的好方法. 基本上我有一个 events 表,其中记录了应用程序的事件以及某种形式的调度处理器(例如 proc),它会定期负责在时间并执行某些例程来响应它(并且取决于它本身的事件的性质). 显然,一旦 proc 的实例开始处理事件,我需要将该行标记为 ongoing,如下所示: 更新事件 SET status ..
发布时间:2022-01-21 12:06:22 其他开发

OpenJDK 的 LinkedBlockingQueue 实现:Node 类和 GC

我对 OpenJDK 的 LinkedBlockingQueue 实现(在 java.util.concurrent 中)中的 Node 类的结构有点困惑. 我已经复制了以下节点类的描述: 静态类节点{E项;/*** 其中之一:* - 真正的后继节点* - 这个Node,表示后继者是head.next* - null,表示没有后继节点(这是最后一个节点)*/节点 E下一个;节点(E ..

PostgreSQL - 实现一个可靠的队列

我正在尝试使用 postgres 数据库实现一个具有多个写入器和多个读取器的可靠队列.当队列读取器扫描表并在读取后提交正在进行的事务时如何避免丢失行. 我们有一个读取器使用“检查点"时间分批选择行,其中每个批次都获取上一个批次中最后一个时间戳之后的行,而我们缺少行.(原因:时间戳值基于插入发生的时间(00.00.00).在重负载时,如果事务需要更长的时间,它会被插入,比如说 10 秒后(00 ..
发布时间:2022-01-21 12:03:35 其他开发

Node.js/Express 和并行队列

我们正在构建一个具有 Node.js 服务器和 Express 的基础架构. 在服务器中,发生的情况如下: 服务器接受来自客户端的传入 HTTP 请求. 服务器生成两个文件(这个操作可以“比较长",也就是0.1秒左右) 服务器将生成的文件(每个约 20-200 KB)上传到外部 CDN 服务器响应客户端,其中包括 CDN 上文件的 URI 目前服务器对每个请求都按顺序执行此 ..
发布时间:2022-01-21 11:53:15 其他开发

我应该在 Java 中使用哪个并发队列实现?

来自 JavaDocs: ConcurrentLinkedQueue 是一个当许多线程将共享对公共集合的访问时,这是一个合适的选择.此队列不允许空元素. ArrayBlockingQueue 是经典“有界缓冲区",其中一个固定大小的数组保存由生产者插入并由消费者提取的元素.此类支持对等待的生产者和消费者线程进行排序的可选公平策略 LinkedBlockingQueue 通常有更高的吞吐量 ..
发布时间:2022-01-21 11:29:00 Java开发

让一个线程进入休眠状态,直到另一个线程解决了某个条件

这里有两段代码完成(我认为是)同样的事情. 我基本上是在尝试学习如何使用 Java 1.5 的并发来摆脱 Thread.sleep(long).第一个示例使用 ReentrantLock,第二个示例使用 CountDownLatch.我想要做的主要是让一个线程进入睡眠状态,直到另一个线程解决了一个条件. ReentrantLock 为我用来决定是否唤醒另一个线程的布尔值提供一个锁,然后 ..

DbUpdateConcurrencyException 使用 Entity Framework 6 和 MySql

我在使用 EF6 和 MySQL 进行并发检查时遇到问题. 我遇到的问题是当我尝试将数据保存到数据库时引发并发异常.如果您检查输出到控制台的 sql,它会尝试使用 where 子句中的旧值从数据库中查询并发字段.因为这个字段已经被数据库更新了. 环境: Windows 7 64 位 Visual Studio 2013 已安装 Nuget 包: EF 6.0.1 ..
发布时间:2022-01-20 11:05:02 数据库

易失性布尔值与原子布尔值

AtomicBoolean 做了哪些 volatile boolean 无法实现的功能? 解决方案 它们完全不同.考虑这个 volatile 整数的例子: 易失性 int i = 0;无效incIBy5(){我+= 5;} 如果两个线程同时调用该函数,则 i 之后可能为 5,因为编译后的代码将与此有些相似(除了您无法在 int 上同步): void incIBy5() {国际温度;同 ..
发布时间:2022-01-19 16:50:07 Java开发

Akka 是否淘汰了 Camel?

我对 Akka 的理解是它提供了一个模型,多个独立的线程可以通过这种模型以高度并发的方式相互通信.它使用“演员模型",其中每个线程都是有特定工作要做的“演员".您可以协调在什么条件下将哪些消息传递给哪些参与者. 我以前使用过 Camel,对我来说,现在 Akka 如此成熟且有据可查,我觉得它有点失去了光彩/实用性.据我了解,Camel 是关于企业集成,即将多个不同的系统集成在一起,通常以某种 ..
发布时间:2022-01-19 08:21:45 其他开发

仅使用 SQL 返回 pre-UPDATE 列值

我发布了一个相关问题,但这是我谜题的另一部分. 我想从已更新的行中获取列的 OLD 值 - 不使用触发器(也不使用存储过程,也不使用任何其他额外的非 SQL/查询实体). 我有一个这样的查询: 更新 my_tableSET processing_by = our_id_info -- 这个工人独有的在哪里 trans_nbr IN (选择 trans_nbrFROM my_tabl ..
发布时间:2022-01-17 20:05:12 其他开发