java并行处理方法推荐

使用java进行开发的盆友,是否遇到过这样的情况,在一个任务里,需要处理几个耗时的方法,但是彼此之间没有联系,即这几个方法可以并发进行。那么可以使用如下方式提高任务处理的效率。具体的可以看如下代码

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;

public class RealData implements Callable<String> {
    protected String data;

    public RealData(String data) {
        this.data = data;
    }

    @Override
    public String call() throws Exception {         //利用sleep方法来表示真是业务是非常缓慢的    
        //     
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return data;
    }
}

public class Application {
    public static void main(String[] args) throws Exception {
        FutureTask<String> futureTask = new FutureTask<String>(new RealData("name"));
        ExecutorService executor = Executors.newFixedThreadPool(1); //使用线程池         
        // 执行FutureTask,相当于上例中的client.request("name")发送请求  
        executor.submit(futureTask);         //这里可以用一个sleep代替对其他业务逻辑的处理         
        // 在处理这些业务逻辑过程中,RealData也正在创建,从而充分了利用等待时间        
        Thread.sleep(2000);         //使用真实数据         //如果call()没有执行完成依然会等
        System.out.println("数据=" + futureTask.get());
    }
}

本文是我在看公众号时获取的,记录下并分享出来

猜你喜欢

转载自blog.csdn.net/Tybyqi/article/details/86496989