线程池中的 submit.get() 理解

1,当一个客户端访问ws服务时,开启一个线程A 处理请求,
2,而后在线程A中 再开启一个线程B 处理业务方法
Future<?> submit = threadPoolTaskExecutor.submit(monitorRunnable);
submit.get() 阻塞 A线程

3,submit.get() 阻塞 A线程,等待B线程返回处理结果
4,将B线程结果返回给调用方,此时在A线程中可以获取到 B 的返回结果 和一些 变量信息


1,当一个客户端访问ws服务时,开启一个线程A 处理请求,
2,而后在线程A中 再开启一个线程B处理业务方法
threadPoolTaskExecutor.submit(monitorRunnable);
3,此时在A线程中没有获取调用.get()方法 阻塞A
4,A现场在调用B后直接返回,不等待B的处理结果,此时也获取不到B线程中的一些变量数据

posted @   iullor  阅读(1457)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示