concurrency相关内容

解释导致 HashMap.put() 执行无限循环的时机

正如许多人所注意到并遇到的那样,HashMap.put 在并发使用时会进入无限执行循环(请参阅 GRIZZLY-1207, JGRP-525,可能是 HHH-6414,和这个 SO 回答). HashMap 被明确记录为不是线程安全的.显然,正确的解决方法是使用 Map 的线程安全实现,尤其是 ConncurrentHashMap.我对导致无限循环的并发时序更好奇.我最近在使用 Java 7 ..
发布时间:2022-01-08 13:56:34 Java开发

ConcurrentHashMap 如何在内部工作?

我正在阅读有关 Java 并发的官方 Oracle 文档,我想知道由 返回的 Collection 之间可能有什么区别 公共静态收集synchronizedCollection(Collectionc); 并使用例如 ConcurrentHashMap.我假设我在 HashMap 上使用 synchronizedCollection(Collection c).我知道 ..
发布时间:2022-01-08 13:53:47 Java开发

从多个线程(不修改)从 java.util.HashMap 获取值是否安全?

有一种情况,地图会被构建,一旦初始化,就再也不会被修改了.但是,它将被多个线程访问(仅通过 get(key)).以这种方式使用 java.util.HashMap 是否安全? (目前,我很高兴使用 java.util.concurrent.ConcurrentHashMap,并且没有衡量提高性能的需要,但我只是好奇一个简单的 HashMap 就足够了.因此,这个问题不是“我应该使用哪个?"也 ..
发布时间:2022-01-08 13:43:04 Java开发

计算时在 JTextArea 中显示文本

我正在编写的一个应用程序包括一个 JButton 和一个 JTextArea.单击按钮会导致长时间计算,从而导致在 JTextArea 中显示文本.即使计算很长,我也可以在旅途中得到中间结果(例如,考虑一个将 pi 近似为 100 位的应用程序 - 每隔几秒我就可以写另一个数字).问题是,即使我编写(在 ActionListener 类中,因为按钮调用了计算)将 JTextArea 的文本设置为某 ..
发布时间:2022-01-08 13:06:33 Java开发

Android:AsyncTask 中的 HTTP 请求不是并发的

我正在为我当地的电影院编写粉丝应用程序,显示接下来几天的放映日历.每日电影列表使用 来自站点的参数化 HTTP 调用(答案包含希伯来语,因此如果您单击链接并收到一些乱码,可能没问题). 该应用会显示接下来八天的日程安排,因此它会根据每天的日程安排请求拨打 8 次电话. private class GetMoviesTask extends AsyncTask> doInBackgroun ..
发布时间:2022-01-07 22:39:11 移动开发

HTC Desire 中的数据库锁定问题

在我的应用程序中,一项服务是从服务器获取数据并将其插入到表 A. 如果我转到特定的 UI,我需要从另一个 table B 中列出数据如果背景操作正在做它会产生数据库锁定异常.我有两个数据库操作在两个不同的表上并行完成. 它在三星 gt15801 中运行良好.但是HTC希望它会生成数据库锁定错误. HTC 愿望 - 插入过程需要 91 秒. 三星 gt15801 - 插入过程 ..
发布时间:2022-01-06 21:07:14 移动开发

按请求可变事务隔离级别

我正在编写一个小拍卖应用程序,并且确定地记录我的出价非常重要.毕竟,拍卖的最后几秒对买家来说是关键时刻,我不能冒险让他们同时出价和竞争. 当然,这就是事务隔离的用途.我可以将我的隔离级别设置为可序列化,我们都设置好了. 但是所有其他请求呢?如果人们正在查看个人资料或发送消息,则这些请求不需要接近这种事务隔离的任何地方.对于这些请求,读提交隔离级别是完全可以接受的. 我正在将我的事 ..
发布时间:2022-01-06 20:58:29 Java开发

分布式事务和/或集群中共享数据的 Java 解决方案

集群/分发 Java 服务器应用程序的最佳方法是什么?我正在寻找一种方法,让您可以通过添加更多应用服务器和更多数据库服务器来进行水平扩展. 您建议使用哪些技术(软件工程技术或特定技术)来解决此类问题? 您使用什么技术来设计持久层以扩展到许多读者/作者扩展应用事务并扩展对共享数据的访问(最好的方法是消除共享数据;您可以应用哪些技术来消除共享数据). 似乎需要不同的方法,具体取决于您的事务是 ..

LINQ to SQL 和并发问题

我们正在尝试构建大批量订单记录系统.共有三个主要表:1. 订单2. 订单详情3. 订单发货 发货表包含每个订单的 n 条记录,任何记录发货条目都可以在客户接受订单之前更改,之后订单将被冻结.(业务需求) 虽然这在现实世界中可能不会发生......在我们的负载测试期间,我们收到 System.Data.Linq.ChangeConflictException 异常.在事务中完成提交也无济 ..
发布时间:2022-01-06 20:46:30 C#/.NET

MySQL中插入意向锁的解决方案

我有一个非常简单的表格: 创建表`d`(`id` int(11) 默认为空,唯一键`id`(`id`)) 引擎=InnoDB 默认字符集=utf8 无记录: select * from d;空集(0.01 秒) 然后我尝试在不同的会话中打开两个事务: 会话 #1: 开始;查询正常,0 行受影响(0,00 秒)select * from d where id = 100 for up ..
发布时间:2022-01-06 20:37:36 数据库

如何正确使用事务和锁来保证数据库的完整性?

我开发了一个在线预订系统.为简化起见,假设用户可以预订多个项目,并且每个项目只能预订一次.商品首先添加到购物车中. App 使用 MySql/InnoDB 数据库.根据 MySql 文档,默认隔离级别是 Repeatable read. 这是我到目前为止想出的结帐程序: 开始交易 选择购物车中的商品(带有更新锁) 在此步骤中获取 cart-item 和 items 表中的记录 ..
发布时间:2022-01-06 20:35:01 数据库

一个事务中 SQL Server 中的备用同义词

我是 Transact SQL 编程的新手. 我创建了一个存储过程,它会删除并创建一个现有的同义词,以便它指向另一个表.存储过程接受 2 个参数: synonymName - 现有的同义词 nextTable - 要指向的表 这是代码片段: ...BEGIN TRAN SwitchTranSET @SqlCommand='删除同义词' + @synonymNameEXEC s ..
发布时间:2022-01-06 20:30:29 数据库

即使禁用会话,ASP.NET MVC 5 并发请求也会排队

在考虑投反对票或告诉我“谷歌它"之前,请更仔细地阅读问题.这是旧/经典问题,但旧/经典解决方案不再有效.这是在 Visual Studio 2013/2015 中重现的非常简单的场景: 1) 使用 MVC 模板创建 ASP.NET Web 应用程序: 2) 打开 Controllers\HomeController.cs 并添加属性到控制器和“睡眠"动作: [SessionState ..

Node.js 的 http.request 的性能如何?它可以处理多少并发请求?

我的 node.js 服务器正在使用最新的 (0.4.8) http.request 调用调用另一台服务器. 我使用 jMeter 来运行负载测试.每秒 50-100 个并发线程,循环 1000 次. 当脚本继续运行时,我发现速度有些慢.我监控网络吞吐量很低,CPU &内存也低.而在另一台服务器中,日志显示他们的响应很快.(毫秒内). 然而,我的 node.js 服务器中的 co ..
发布时间:2022-01-05 15:35:41 其他开发

将 Task.WhenAll 和 Parallel.ForEach 与 Entity Framework Core DataContext 一起使用时出现意外的不同结果

鉴于此实体框架核心代码段 using (var scope = serviceProvider.CreateScope()) {var ctx = scope.ServiceProvider.GetRequiredService();//ctx 和实体的异步操作(实体见下文)等待 ctx.SaveChangesAsync();} 还有一个列表我想以并发方式使用它的实体.我第一次尝试 aw ..
发布时间:2022-01-05 08:12:39 C#/.NET

确定使用障碍物(围栏)的位置

x86 指令 lfence/sfence/mfence 用于在 Linux 内核中实现 rmb()/wmb()/mb() 机制.很容易理解这些用于序列化内存访问.然而,在编写代码时——在遇到运行时行为中的错误之前,确定何时何地使用它们要困难得多. 我很想知道在编写/审查代码时是否有可以检查的已知警告,这可以帮助我们确定必须插入障碍的位置.我知道这太复杂了,但是否有经验法则或清单可以帮助我们确 ..

如何在 Jmeter 中生成并发用户负载

我有一个测试,用户将登录并在搜索字段中输入搜索关键字并获得结果.最后退出. 现在我想使用 Jmeter 测试并发性.所以这就是我想出的. 测试计划线程组+ 登录请求+ 同步控制器+ 搜索字符串+ 同步控制器+ 登出 我添加了 10 个线程.我在同步控制器中添加了 5 个.那么当我运行测试时我会得到5个用户的并发吗?剩下的 5 个用户会是同时的用户吗? 当登录页面加载时,我也依赖请求 ..
发布时间:2022-01-04 12:33:30 其他开发

写单行时回声是原子的

我目前正在尝试获取一个脚本,以将其他启动命令的输出正确写入日志文件.该脚本将使用 echo 将其自己的消息写入日志文件,并且有一种方法可以将来自其他程序的行通过管道传输到其中. 主要问题是,产生输出的程序是在后台启动的,所以我的读取函数可能会同时写入日志文件.这可能是个问题吗?Echo 总是只写一行,所以保证原子性应该不难.但是,我在 google 中查看过,但没有发现任何方法可以确保它实际 ..
发布时间:2022-01-04 10:11:57 其他开发

我可以确保 Haskell 执行原子 IO 吗?

我在 haskell 中有两个线程来执行 IO.(他们只打印).类似于以下内容: thread1 :: IO()thread1 = putStrLn "一"线程 2 :: IO ()thread2 = putStrLn "两个" 我目前得到的结果如下: OnTwoe奥特威 如何确保每个线程都原子地完成其 IO? 解决方案 使用同步变量来确保对资源的原子访问.一个简单的方法是使用 M ..
发布时间:2022-01-04 08:36:00 其他开发