●介绍
有时候执行一个任务需要很长时间,单线程下线程会处于阻塞状态。这个时候我们会考虑一种非阻塞的处理模式。非阻塞任务在任何编程语言里都必不可少,Java也不例外。多线程就是一个很好的解决办法。
但是多线程是异步处理,异步就意味着不知道处理结果,如果我们需要知道处理结果的时候应该怎么办呢? 笔者介绍下面两种方法
●Callback
回调一般是异步处理的一种技术。一个回调是被传递到并且执行完该方法。 这种方式只能异步回调,如果需要同步等待线程处理结果可以使用下面介绍的Futures
package callback;
import java.util.Map;
public interface ICallback {
public void callback(Mapparams);
}
package callback;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* Callback
* 回调一般是异步处理的一种技术。
* 一个回调是被传递到并且执行完该方法。 这种方式只能异步回调,
* 如果需要同步等待线程处理结果可以使用下面介绍的Futures
*/
public class NettyTest1 {
static ExecutorService es = Executors.newFixedThreadPool(2);
pub