合理配置线程池
原则:CPU密集、IO密集
CPU密集:该任务(run代码)需要大量得运算,而没有阻塞情况,CPU全速运行。 最大线程数=CPU核数
IO密集:该任务需要大量的IO操作,产生阻塞,如果是单线程中执行阻塞,解决阻塞可以实现使用多线程技术 最大线程数=2*CPU核数
Future模式
future模式:去除主函数的等待时间,并使得原本需要等待的时间段可以用来处理其他业务逻辑。
package Thread_day08;
import java.util.concurrent.*;
public class Test0003 {
public static void main(String[] args) throws ExecutionException, InterruptedException {
ExecutorService newCachedThreadPool= Executors.newCachedThreadPool();
Future<String> submit = newCachedThreadPool.submit(new TaskCallable());
System.out.println("1.主线程开始执行。。。");
String result = submit.get();
System.out.println("2.result:"+result);
}
}
class TaskCallable implements Callable<String>{
@Override
public String call() throws Exception {
System.out.println("3.正在执行任务,需要等待5秒,执行任务开始");
Thread.sleep(5000);
System.out.println("4.正在执行任务,需要等待5秒,执行任务结束");
return "吴坚";
}
}