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 {

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 futureTask = new FutureTask(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());
}

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

你可能感兴趣的:(java并行处理方法推荐)