multithreading 相关问题

多线程是计算机或程序通过利用多个并发执行流(通常称为线程)同时或异步执行工作的能力。

Mged M. Michael提出的危险指针可以预防ABA问题吗?

更新: 就我而言,“另一个线程可能会删除然后重新插入第 4 行和第 4b 行之间的节点”意味着可以删除、修改节点并将其重新插入到

回答 1 投票 0

集成测试中事务回滚在多线程模式下无法正常工作

我在集成测试中使用了这个技巧,以确保每个测试都在事务中运行,并且该事务会回滚: 我定义了以下基类,我所有的集成测试类都可以

回答 1 投票 0

C++独立数据的多线程性能

让我们有一个非常简单的 C++ 类,只有一个数据成员: 类容器{ 民众: std::vector 元素; 容器(int elemCount); }; 现在创建 N 个线程,这...

回答 2 投票 0

使用参数调用任务时任务池不工作

我正在使用“https://github.com/alugowski/task-thread-pool/”创建线程池并使用提交函数调用任务但出现错误 int 模型::sum(int a, int b) {

回答 1 投票 0

任务需要继续时如何正确处理InterruptedException?

在我当前的Java代码中,我有以下结构: 尝试 { 线程睡眠(1000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); // 返回; } 方法1(); 方法2...

回答 1 投票 0

python 中的可杀死套接字

我的目标是发出一个接口来永远监听套接字......直到决策链上的某人认为这已经足够了。 这是我的实现,它不起作用。混合线程、套接字、对象

回答 1 投票 0

调试期间的线程

有人可以向我解释一下为什么我的项目调试期间有这么多线程吗? 我启动我的控制台应用程序(.net 4.5),我可以看到有以下线程: [8064][线索已毁] [

回答 2 投票 0

如何在 Spring Boot 中检测 @Async 方法的结束并运行一些代码

我正在编写一个 Spring Boot 应用程序,我想在后台运行一些多线程计算。队列中一次可能只有几个到几千个计算,所以我不想...

回答 1 投票 0

如何同时等待线程事件和套接字轮询?

我有一个用于套接字传入消息的 select.poll() 对象,以及一个包含潜在传出消息的queue.Queue() 对象。 虽然这两个对象分别支持等待超时...

回答 1 投票 0

Spring 和虚拟线程

我从 JDK21 和虚拟线程开始。 我正在使用 Spring Framework 6.1.12 和 Spring Batch 5.1.2 我成功地使用了一个简单的任务执行器,如下所示: 我从 JDK21 和虚拟线程开始。 我正在使用 Spring Framework 6.1.12 和 Spring Batch 5.1.2 我成功地使用了一个简单的任务执行器,如下所示: <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <property name="corePoolSize" value="10" /> <property name="maxPoolSize" value="20" /> <property name="waitForTasksToCompleteOnShutdown" value="true" /> </bean> 为了测试虚拟线程和JDK21,我改成这样: <bean id="taskExecutor" class="org.springframework.core.task.VirtualThreadTaskExecutor"> <constructor-arg name="threadNamePrefix" value="VIRTUAL-thread" /> </bean> 所以,我有一些疑问: 这个“迁移”对吗? 我可以确定它使用的是虚拟线程吗?如果我打开 VirtualThreadTaskExecutor,里面有一个 VirtualThreadDelegate,其中所有方法都会引发异常。 Spring中有“虚拟线程池”吗?或者,并发有 20 个虚拟线程池是否可能或有意义?我认为虚拟线程被设计为不被池化,但这对我来说是一个很大的改变,我想确定我正在以正确的方式做。 所以,简而言之,我已经阅读了有关虚拟线程和性能的精彩内容,并且我想在 Spring 和 Spring Batch 中执行虚拟线程来测试我的软件中的性能。如果您有一些从平台线程迁移到虚拟线程的指南、技巧等,我们非常感谢您的帮助。 关于你的问题。 某种程度上,您可能最好使用 SimpleAsyncTaskExecutor,它允许更多的配置和控制。 public SimpleAsyncTaskExecutor taskExecutor() { var taskExecutor = new SimpleAsyncTaskExecutor(); taskExecutor.setVirtualThreads(true); taskExecutor.setConcurrencyLimit(20); // based on your max poolsize return taskExecutor; } 你正在看错误的,实际上有2个不同的,因为Spring是作为一个多版本jar发布的。特定于 JDK 21 的代码位于“不同的目录”中,并且仅在 JDK 21+ 上加载,并且将加载而不是您正在查看的代码。 不要缓存虚拟线程,因为这没有意义,也不是为此设计的。 最后调整一下你的期望,你可能不会获得太多的性能提升,但能够在相同的时间内使用相同的硬件做更多的事情。由于更有效的线程使用。它们不是一个神奇的解决方案。虚拟线程旨在帮助阻塞 IO 任务(然后它将停止),如果您打算增加计算繁重的任务,您会感到失望,甚至可能面临性能下降而不是增加。

回答 1 投票 0

如何在Java中找到一个线程安全的集合,在插入时强制执行唯一性和大小限制?

我正在寻找 Java 中的线程安全集合: 强制元素的唯一性(如集合)。 限制集合的大小(一旦达到限制,则拒绝进一步插入)。 是否...

回答 1 投票 0

批量将实时数据写入Postgres表的最佳方法[已关闭]

我正在使用一个 C# 程序,该程序订阅期权合约数据,并在多个线程上进行更新。我想每分钟左右运行一次分析,所以我计划...

回答 1 投票 0

如何在 Spring Boot 中检测 @Async 方法的结束并运行一些代码;

我正在编写一个 Spring Boot 应用程序,我想在后台运行一些多线程计算。队列中一次可能只有几个到几千个计算,所以我不...

回答 1 投票 0

为什么从多核而不是同一个核进行多线程、分块写入大文件到 SSD 的速度会更慢?

注意:考虑到评论中的大量建议和发现,该问题已经过一些编辑,现在可能已经过时了。它最初关注的是线程数量,而......

回答 1 投票 0

守护线程设置输入命令停止用户线程

我需要帮助解决我遇到的这个问题,所以如果有人遇到类似的问题,那将对我有很大帮助。该问题与 Java 中的并发编程有关。 我有一个球课和一个测试...

回答 1 投票 0

Java 对象类是否包含用于跟踪等待它们的线程的集合?

Java中wait()和notify()到底是如何实现的? 当线程对对象调用 wait() 时,该对象是否将线程存储在该对象内的集合中?这样当调用notify()时...

回答 1 投票 0

Java 对象类是否包含一个用于跟踪等待它们的线程的集合?

Java中wait()和notify()到底是如何实现的?当线程对对象调用 wait() 时,对象是否将线程存储到对象内的集合中?这样当调用notify()时...

回答 1 投票 0

为什么以多线程、分块方式将大文件写入 SSD 比从单线程写入要慢?

(我敢打赌你直观的答案是“同步”——请耐心听我解释为什么这不一定是答案。) 下面的代码比较了将完全相同的数据写入文件:

回答 1 投票 0

在单独的线程中运行 Tkinter 表单

我编写了一个简短的模块,可以传递图像并简单地创建一个 Tkinter 窗口并显示它。 我遇到的问题是,即使我实例化并调用该方法,

回答 5 投票 0

在多线程处理时重新审视 C 中的“易失性”

我在这里阅读了很多关于这个主题的问题,但仍然觉得我读到的很多答案都没有抓住要点。 问题:纯 C 中线程之间共享的变量是否应该标记为 vol...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.