java多线程系列13 设计模式 Future 模式

本文介绍了Future模式的概念及其在Java中的实现方式。通过模拟异步处理过程,展示了如何使用FutureTask结合线程池实现非阻塞式的数据请求处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Future 模式

类似于ajax请求  页面异步的进行后台请求

用户无需等待请求的结果 就可以继续浏览或者操作

核心就是:去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑

 

JDK内置实现Future模式演示一下

public class RealData implements Callable<String> {
	String res = null;

	@Override
	public String call() throws Exception {
		Thread.sleep(5000); // 模拟处理数据的过程 并将结果放在res里面
		res = "result";
		return res;
	}

	public static void main(String[] args) {
		FutureTask<String> futureTask =   
                new FutureTask<String>(new RealData());  
        ExecutorService executor =   
                Executors.newFixedThreadPool(1);   
        executor.submit(futureTask);  
        //这里使用sleep 模拟 真实业务
        try {
			Thread.sleep(2000);
		} catch (InterruptedException e) {
	
			e.printStackTrace();
		}  
        
 
        try {
			System.out.println("res= " + futureTask.get()); //如果call()没有执行完成 get依然会等待  
		} catch (Exception e) {
			e.printStackTrace();
		} 
        
	}
}

  

转载于:https://www.cnblogs.com/javabigdata/p/7002812.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值