线程池和数据库连接池
什么是线程池和工作机制?
当一个程序中若创建大量线程,并在任务结束后销毁,会给系统带来过度消耗资源,以及过度切换线程的危险,从而可能导致系统崩溃.为此我们应使用线程池来解决这个问题.
首先创建一些线程,它们的集合成为线程池,当服务器接收到一个客户请求后,就从线程池中取出一个空闲的线程位置服务,服务结束后不关闭该线程,而是将该线程还回到线程池中.当线程池的编程模式下,任务是提交给整个线程池,而不是直接交给某个线程,线程池在拿到任务后,它就在内部找有无空闲的线程,再把任务交给内部某个空闲的线程,一个线程同时只能执行一个任务,但可以同时向一个线程池提交多个任务.
在JavaEE中,数据连接池的工作机制是什么?
JavaEE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接.客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其标记为忙.如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量由配置参数决定.当使用的池连接调用完成后,池驱动程序将次连接标记为空闲,其他调用就可以使用这个连接.