首页 > 解决方案 > Java - 在单独的线程上调用对象方法

问题描述

Java 和多线程问题相当新,所以请多多包涵。

问题:是否可以创建多个线程并将某个方法“分配”给一个线程(我希望有某种不错的装饰器),以便每当调用该方法时,它都会在指定线程而不是主线程上调用? (希望这是有道理的)。

背景:我正在研究一个事件处理程序对象,它将接收请求并将某个操作返回给调用者(通过“方法 A”)。然后,事件处理程序将接收到对该操作的多个单独响应,每个响应都将触发“方法 B”。处理程序应该等待“终端”的响应,然后才允许另一个请求进入。所以我想阻止任何传入的请求,直到我收到对当前正在处理的请求的响应的终端状态.

到目前为止的方法:我尝试过使用 CountDownLatch 但问题是当我在收到请求后阻塞方法 A 中的主线程时,根本不会调用方法 B,因为它是在我假设的同一个线程上调用的。

任何帮助将非常感激!

标签: javamultithreading

解决方案


是的,有一种方法可以做你想做的事。与您预期的方式略有不同,但您需要阅读一些内容。您需要的类是ThreadPoolExecutor。另外,看看类Executors


推荐阅读