学习Java第三十天--多线程之线程池和同步锁
线程池、Callable接口、Future接口、Lock接口、同步锁的使用方法 14.4 线程池 14.4.1 线程池概念 14.4.2 线程池原理 14.4.3 获取线程池 14.4.4 Callable接口 14.4.5 Future接口 14.4.6 线程的同步 14.4.7 线程的异步 14.4.8 Lock接口 14.4.8 重入锁 14.4.9 读写锁 14.4.10 ReentrantReadWriteLock 14.4 线程池 14.4.1 线程池概念 现有问题: 线程是宝贵的内存资源、单个线程约占1MB空间,过多分配易造成内存溢出; 频繁的创建及销毁线程会增加虚拟机回收频率、资源开销,造成程序性能下降; 线程池: 线程容器,可设定线程分配的数量上限; 将预先创建的线程对象存入池中,并重用线程池中的线程对象 避免频繁的创建和销毁; 14.4.2 线程池原理 将任务提交给线程池,由线程池分配线程、运行任务,并在当前任务结束后复用线程; 14.4.3 获取线程池 常用的线程池接口和类(所在包java.util.concurrent) Executor:线程池的顶级接口 ExecutorService:线程池接口,可通过submit(Runnable task)提交任务代码; Executors工厂类:通过此类可以获得一个线程池; 通过newFixedThreadPool