Java ThreadPoolExecutor线程完成后的完成请求
我想在Java微服务中使用隔板。在我的服务方法进行到一半时,我发出了一个外部HTTP请求,该请求当前是同步的,但希望在线程池线程上执行该请求,我可以使用ThreadPoolExecutor来执行。但是在新的线程池线程完成之后,我希望通过该方法的其余部分继续使用原始Tomcat线程,该方法依赖于从线程化外部请求返回的数据。是否有一种方法可以保留原始线程,并使用异步线程中的数据继续使用它Java ThreadPoolExecutor线程完成后的完成请求,java,multithreading,java.util.concurrent,threadpoolexecutor,hystrix,Java,Multithreading,Java.util.concurrent,Threadpoolexecutor,Hystrix,我想在Java微服务中使用隔板。在我的服务方法进行到一半时,我发出了一个外部HTTP请求,该请求当前是同步的,但希望在线程池线程上执行该请求,我可以使用ThreadPoolExecutor来执行。但是在新的线程池线程完成之后,我希望通过该方法的其余部分继续使用原始Tomcat线程,该方法依赖于从线程化外部请求返回的数据。是否有一种方法可以保留原始线程,并使用异步线程中的数据继续使用它 或者我们通常在这里看一个代码重构来处理我的方法的其余部分,它依赖于从线程请求返回的数据?如果您向执行器提交一个可
或者我们通常在这里看一个代码重构来处理我的方法的其余部分,它依赖于从线程请求返回的数据?如果您向执行器提交一个可调用线程,它将返回一个未来,可以在代码中的稍后点进行评估。但是,如果您需要从另一个线程返回数据,您将不得不在某个时刻阻止执行。@user3169180假设我没有弄错,您希望从对单独的线程运行同步调用、等待它然后继续主线程中获得什么好处?是资源管理/限制吗?队列管理?总之,
Semaphore
类是您的朋友:)我想使用线程池,以便使用超时。你是说舱壁真的只适用于失火和遗忘任务,而不适用于此类需要进一步处理的任务吗?抱歉,我仍然不清楚,我可以使用信号机方法暂停吗?我可以使用线程池切换来实现这一点。同样,我不知道如何在tomcat线程上等待线程池线程完成。实际上,我假设我可以使用从线程池返回的未来等待,然后在线程返回时继续。如果您向执行器提交一个可调用的线程,它将返回一个未来,可以在代码中的稍后点进行计算。但是,如果您需要从另一个线程返回数据,您将不得不在某个时刻阻止执行。@user3169180假设我没有弄错,您希望从对单独的线程运行同步调用、等待它然后继续主线程中获得什么好处?是资源管理/限制吗?队列管理?总之,Semaphore
类是您的朋友:)我想使用线程池,以便使用超时。你是说舱壁真的只适用于失火和遗忘任务,而不适用于此类需要进一步处理的任务吗?抱歉,我仍然不清楚,我可以使用信号机方法暂停吗?我可以使用线程池切换来实现这一点。同样,我不知道如何在tomcat线程上等待线程池线程完成。实际上,我假设我可以使用线程池返回的future等待,然后在线程返回时继续。