目录
先来谈谈线程池
了解线程池之前,你有哪些熟知的线程池有哪些呢?
String(字符串常量池),MySQL JDBC,数据库连接池(DataSource);通过对他们的了解,大概知道了出现池的主要目的——减少不必要的开销,提高效率;
为什么出现了线程池呢?
线程出现的目的是因为进程太重量级了,导致创建线程或者销毁进程效率很低,而线程就是为了资源共享,新的线程复用之前的资源,就提高了效率,但是如果线程创建/销毁 的速率非常高,那么线程的创建/销毁带来的开销就是不可忽略的;
线程池的基本原理是什么?
这就像DataSource一样,再建立连接之后,同时也会保留之前的一些连接,后面若在需要建立连接,直接从池子中取就OK,这样也就减少了重新建立连接的开销;
造一个池子,里面创建很多线程,当再次需要执行任务的时候,就不用再创建线程了,而是直接从池子中取出一个现成的线程供使用,即使该线程完成了任务,也不销毁线程,而是继续