当前位置: 首页 > 知识库问答 >
问题:

在调用AsynFuture的java中跨线程共享对象

俞博涛
2023-03-14

我创建了一个可运行的类a,它为我执行一些任务。我使用ExecutorService提交这个类,以便并行执行这些任务。

可运行类A调用另一个对象B,该对象发送一个AsyncFuture请求(future.get()one)。

我将可运行类A的单独对象提交给ExecutorService,但是,类B的对象由bean(单例)引用。这会导致线程执行出现问题吗?

我注意到类A的一些对象没有被任何线程执行。

我读了一些关于使用ThreadLocal的文章,但我不确定它是否适用于这里。

共有1个答案

祁权
2023-03-14

引用来自不同对象的单例bean,尽管跨不同的线程确实会导致瓶颈。唯一对我有效的解决方案是在A的初始化中查找这个bean。

 类似资料:
  • 我将Spring缓存与CacheManager结合使用,并可在10个不同的应用程序中缓存同一表中的相同数据。实现时的假设是,我们缓存的数据是元数据,不应更改。然而,他们正在更改这些数据,缓存永远不会被清除。 现在的要求是通过2个大请求同时清除所有10个应用程序的缓存。 每当mySQL工作台上的直接INSERT语句更改表时,所有应用程序缓存都应该刷新。我使用的是Hibernate和Spring,但请

  • 问题内容: 假设我有一个与field共享的对象。多个线程将共享对该对象的引用以访问该字段。但是,线程永远不会同时访问对象。我需要声明为volatile吗? 这样的情况如下: 一个类定义一个唯一字段和一个方法。 一个线程使计数器递增,然后生成另一个使计数器递增的线程,依此类推。 鉴于程序的逻辑,因此无法并发访问计数器。但是,计数器是在多个线程之间共享的。计数器必须波动吗? 的情况的另一个变体是当多个

  • 我正在学习多线程的基础知识,并且正在编写一个程序来理解使用两种创建线程的方法之间的区别。 我已经读到,使用Runnable允许多个线程共享同一个对象,并希望在扩展线程时尝试类似的事情。因此,在创建了Demo2的新对象之后,我将引用传递给了线程构造函数(类似于我们在Runnable中所做的)。 当objT1,tT1,tT2将总和的值增加到3时,我达到了我想要达到的目标。但是在打印当前线程的名称时,它

  • 用例 我有一个基于gRPC Guice的服务应用程序,其中对于特定的调用,代码流如下所示:

  • 问题内容: 我有一个Python脚本作为守护程序运行。在启动时,它产生5个进程,每个进程都连接到Postgres数据库。现在,为了减少数据库连接的数量(最终将变得非常大),我试图找到一种在多个进程之间共享单个连接的方法。为此,我正在研究API。但是,我不确定如何使用该API在各个进程之间传递对象。谁能告诉我该怎么做? 为了解决这个问题,我也开放其他想法。 我之所以不考虑将连接作为构造函数的一部分传

  • 我正在学习多线程的基础知识,并且正在编写一个程序来理解使用两种创建线程的方法之间的区别。 我已经读到,使用Runnable允许多个线程共享同一个对象,并希望在扩展线程时尝试类似的事情。因此,在创建了Demo2的新对象之后,我将引用传递给了线程构造函数(类似于我们在Runnable中所做的)。 当objT1,tT1,tT2将总和的值增加到3时,我达到了我想要达到的目标。但是在打印当前线程的名称时,它