concurrency相关内容

AsyncTask 真的在概念上有缺陷还是我只是遗漏了什么?

我已经调查这个问题几个月了,想出了不同的解决方案,我不满意,因为它们都是大规模的黑客攻击.我仍然无法相信一个在设计上有缺陷的类将其纳入框架而没有人在谈论它,所以我想我一定是遗漏了一些东西. 问题在于AsyncTask.根据文档它 "允许执行背景操作并发布结果无需操作的 UI 线程线程和/或处理程序." 然后该示例继续展示如何在 onPostExecute() 中调用一些示例性的 ..
发布时间:2021-11-27 14:07:02 移动开发

AWS Athena 并发限制:提交的查询数 VS 正在运行的查询数

根据 AWS Athena 限制,您可以提交一次最多 20 个相同类型的查询,但这是一个软限制,可以根据要求增加.我使用 boto3 与 Athena 交互,我的脚本提交了 16 个 CTAS 查询,每个查询大约需要 2 分钟才能完成.在 AWS 账户中,只有我在使用 Athena 服务.但是,当我通过控制台查看查询状态时,我发现只有少数查询(平均 5 个)实际上正在执行,尽管它们都处于 Runn ..
发布时间:2021-11-27 08:49:04 其他开发

使用 Alamofire 的 NSURLSession 并发请求

我的测试应用出现了一些奇怪的行为.我有大约 50 个同时发送到同一台服务器的 GET 请求.服务器是资源非常有限的一小块硬件上的嵌入式服务器.为了优化每个请求的性能,我配置了一个 Alamofire.Manager 实例如下: 让配置 = NSURLSessionConfiguration.defaultSessionConfiguration()配置.HTTPMaximumConnection ..
发布时间:2021-11-26 22:53:03 移动开发

如何在没有 Akka 的情况下实现 actor 模型?

如何在没有 Akka 的情况下实现简单的 actor?对于许多(非固定计数)actor 实例、绿色线程、IoC(生命周期、基于 Props 的工厂、ActorRef 的)、监督、背压等,我不需要高性能.只需要顺序性(队列)+ 处理程序 + 状态+ 消息传递. 作为一个副作用,我实际上需要基于actor的小型管道(带有递归链接)+一些并行actor来优化DSP 算法计算.它将在没有传递依赖关系 ..
发布时间:2021-11-26 22:38:05 其他开发

在 Java 中选择最佳并发列表

我的线程池有固定数量的线程.这些线程需要经常从共享列表中写入和读取. 那么,在这种情况下,java.util.concurrent 包中的哪种数据结构(最好是 List,必须是无监视器的)是最好的? 解决方案 最好是List java.util.concurrent 中的唯一 List 实现是 CopyOnWriteArrayList.正如 Travis Webb 提到的, ..
发布时间:2021-11-25 21:14:26 Java Web开发

如何异步调用Java中的方法

我最近一直在查看 Go 的 goroutines 并认为它会很好在 Java 中有类似的东西.据我搜索,并行化方法调用的常用方法是执行以下操作: final String x = "somethingelse";新线程(新运行(){公共无效运行(){x.matches("某事");}}).开始(); 那不是很优雅.有更好的方法吗?我在一个项目中需要这样的解决方案,所以我决定围绕异步方法调用实现 ..
发布时间:2021-11-25 21:04:19 Java Web开发

挥发性贵吗?

阅读编译器编写者的 JSR-133 Cookbook 后,关于volatile 的实现,尤其是“与原子指令的交互"部分我假设读取一个 volatile 变量而不更新它需要一个 LoadLoad 或一个 LoadStore 屏障.在页面下方,我看到 LoadLoad 和 LoadStore 在 X86 CPU 上实际上是无操作的.这是否意味着可以在 x86 上无需显式缓存失效即可完成 volatil ..
发布时间:2021-11-25 21:03:01 Java Web开发

为什么没有针对 ConcurrentHashMap 的 ConcurrentHashSet

HashSet 基于 HashMap. 如果我们看看 HashSet 的实现,一切都在 HashMap 下进行管理. 作为HashMap的key. 而且我们知道 HashMap 不是线程安全的.这就是我们在 Java 中有 ConcurrentHashMap 的原因. 基于此,我很困惑为什么我们没有应该基于 ConcurrentHashMap 的 ConcurrentHas ..
发布时间:2021-11-25 21:00:32 Java Web开发

列表<未来>到未来<列表>Java中的序列

我正在尝试将 List> 转换为 CompletableFuture>.当您有许多异步任务并且需要获取所有任务的结果时,这非常有用. 如果其中任何一个失败,那么最终的未来就会失败.这就是我实施的方式: public static CompletableFuture>序列2(列表> com,ExecutorService exec){如果(com.isEmpty()){抛出新的 Illeg ..
发布时间:2021-11-25 20:26:13 Java Web开发

Executors.newCachedThreadPool() 与 Executors.newFixedThreadPool()

newCachedThreadPool() 与 newFixedThreadPool() 我什么时候应该使用其中一种?哪种策略在资源利用方面更好? 解决方案 我认为文档很好地解释了这两个函数的区别和用法: newFixedThreadPool 创建一个重用一个线程池固定数量的线程关闭一个共享的无界队列.在任何点,最多 nThreads 个线程将是主动处理任务.如果额外的任 ..
发布时间:2021-11-25 20:17:23 Java Web开发

如何使用 SwingWorker 模拟缓冲外围设备?

我将此练习用作教学工具,以帮助我掌握一些 Java GUI 编程概念.我正在寻找的是一般的理解,而不是对一个特定问题的详细解决方案.我希望编写这个“正确"的代码会教我很多关于如何处理未来多线程问题的知识.如果这对于这个论坛来说太笼统了,它可能属于程序员吗? 我正在模拟读卡器.它有一个 GUI,允许我们将卡片装入料斗并按 Start 等,但它的主要“客户端"是 CPU,在单独的线程上运行并请求 ..
发布时间:2021-11-25 20:13:25 Java Web开发

如果可以使用 synchronized(this),为什么要使用 ReentrantLock?

如果可以使用synchronized (this),我试图了解是什么让并发锁如此重要.在下面的虚拟代码中,我可以执行以下任一操作: 同步整个方法或同步易受攻击的区域(synchronized(this){...}) 或使用 ReentrantLock 锁定易受攻击的代码区域. 代码: private final ReentrantLock lock = new Reentrant ..
发布时间:2021-11-25 19:34:00 Java Web开发

如何解决“Double-Checked Locking is Broken"Java中的声明?

我想在 Java 中为多线程实现延迟初始化. 我有一些这样的代码: class Foo {私人助手助手 = null;公共助手 getHelper() {if (helper == null) {帮手h;同步(这个){h = 帮手;如果 (h == 空)同步(这个){h = 新助手();}//释放内部同步锁帮手 = h;}}返回帮手;}//其他函数和成员...} 而且我收到了“双重检查锁定被 ..
发布时间:2021-11-25 19:15:36 Java Web开发

迭代 ConcurrentHashMap 值线程安全吗?

在 ConcurrentHashMap 如下: 检索操作(包括get)一般不会阻塞,所以可能与更新操作(包括put和remove)重叠.检索反映了最近完成的更新操作的结果.对于诸如 putAll 和 clear 之类的聚合操作,并发检索可能仅反映某些条目的插入或删除.类似地,迭代器和枚举返回反映哈希表在迭代器/枚举创建时或创建后的某个时刻的状态的元素.它们不会抛出 ConcurrentMod ..
发布时间:2021-11-25 19:07:56 Java Web开发

如果ThreadPoolExecutor 的submit() 方法已饱和,如何使其阻塞?

我想创建一个 ThreadPoolExecutor 以便当它达到最大大小并且队列已满时,submit() 方法阻塞 尝试添加新任务时.我是否需要为此实现自定义 RejectedExecutionHandler 或者是否有使用标准 Java 库的现有方法来执行此操作? 解决方案 我刚刚找到的可能解决方案之一: public class BoundedExecutor {私人最终执行者执行; ..
发布时间:2021-11-25 18:05:11 Java Web开发

同步静态方法如何在 Java 中工作,我可以使用它来加载 Hibernate 实体吗?

如果我有一个带有静态方法的 util 类,它将调用 Hibernate 函数来完成基本的数据访问.我想知道使方法 synchronized 是否是确保线程安全的正确方法. 我希望这样可以防止访问同一数据库实例的信息.但是,我现在确定以下代码是否会阻止在特定类调用 getObjectById 时为所有类调用它. public class Utils {公共静态同步对象 getObjectBy ..
发布时间:2021-11-25 18:03:32 Java Web开发

Eratosthenes 的素数顺序比并发快吗?

我目前正在编写一个程序,该程序首先通过 Eratosthenes 筛分顺序生成素数,然后同时生成.该算法的并发版本应该比顺序版本快,但在我的情况下,并发版本大约是.慢了 10 倍.我想知道与顺序解决方案中的主线程相比,我在哪里将额外的工作放在我的线程上.这是我的程序(准备阅读一下!): Primes.java: 公共抽象类素数{字节[] bitArr;int maxNum;最终 int[] ..
发布时间:2021-11-25 18:00:26 Java Web开发

Swing - 更新标签

我有一个消息标签和一个提交按钮.提交按钮将被多次按下,每次按下的操作最多可能需要一分钟. 当按钮按下时,我想将消息设置为空,任务完成后,我想将消息设置为“完成". private void submitActionPerformed(java.awt.event.ActionEvent evt) {消息 = "";更新消息标签();做任务();/* 此更新适用于完成后的标签 */messa ..
发布时间:2021-11-25 17:59:50 Java Web开发