关于多线程实现的两种方式,一个Runnable,一个FutureTask和Callable配合使用。仅供大家参考。
/**
* Runnable 没有返回值,只是多线程执行
*/
@Test
public void test1(){
// 线程池
ThreadPoolExecutor executor = ThreadPool.getExecutorPool();
Runnable runnable = new Runnable() {
@Override
public void run() {
// 写逻辑
}
};
executor.execute(runnable);
}
/**
* Callable和Callable 配合使用,当多线程模式有返回值
*/
@Test
public void test2() throws Exception {
ThreadPoolExecutor executor = ThreadPool.getExecutorPool();
FutureTask<JSONObject> futureTask = new FutureTask<>(new Callable<JSONObject>() {
@Override
public JSONObject call() throws Exception {
// 写逻辑
return null;
}
});
executor.execute(futureTask);
//延时接收参数,给当前线程10秒的时间,
JSONObject jsonObject = futureTask.get(10, TimeUnit.SECONDS);
System.out.println(jsonObject);
}