网络通信中的线程池
2021-01-02 16:29
标签:closed oid run 电脑 int isp 通信 ret BMI 通常线程是:有一个请求然后会创建对应的线程;执行完之后再回收。等待下次请求。 这样不断的创建线程再销毁线程是一种资源浪费,而且也不能无限制的创建线程。所以我们要学会复用线程(线程池)。 Java提供的线程池: ExecutorService 通过实现这个接口可以达到线程池的管理。 runnable void 无返回结果; callable 有具体类型返回结果。 通过创建上面两个对象 提交到线程池。然后会返回一个future对象。通过调用这个对象的isDone 可以查询是否执行结束。如果执行结束可以通过get()获取结果。 Executor 这个类里面提供了很多静态的方法提供了创建不同的线程池。 1创建一个线程达到复用。 2创建一个线程池可以设置里面有几个线程 例如电脑是4核CPU就创建4条线程来达到并行处理的能力。 3 跟第二个不一样的就是当有新任务进来的时候,线程池满了会创建新线程。(更灵活) 4 有定时任务的线程池。 测试代码: 网络通信中的线程池 标签:closed oid run 电脑 int isp 通信 ret BMI 原文地址:https://www.cnblogs.com/study-gdp/p/12994232.htmlpublic class TestThreadPool {
public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService executorService = Executors.newFixedThreadPool(5);
Callable
下一篇:Windows下elasticsearch启动闪退之JAVA环境变量报错:could not find java; set JAVA_HOME or ensure java is in PATH