1.首先可运行线程池,是一直有的,属于OS部分的,它是用来存 就绪态线程的地址的
2.而我们常说的 线程池,实际就是,已经开辟好的 一块线程池空间,这个空间,与普通的 用于创建线程的空间 区分开来,是两块空间
3.这个是有我们组件提供的,例如jvm,tomcat…,他们有特别的提高线程池的功能,他们会化一块空间,并将所有线程全部创建好,这个线程池 就等于 这块已经创建好的 线程空间,并且刚刚创建好的线程,都是就绪态的
4.cpu会去 所有线程池中(包括 os本身带有的 “可运行线程池”,以及 组件的 “线程池”)中去 获得 地址(“可运行线程池”)或者 直接 获得线程(“线程池”中就绪态的线程)执行
5.线程池中的线程状态,有各种状态的,不是只有就绪态的,然而,cpu只会去执行 线程池 中 就绪态的线程
6.线程池中的线程,一旦被执行完毕,不会变成死亡状态然后被清空空间,而是直接又变成就绪态,等待 组件为其分配指令,然后cpu可以继续执行
7.就绪态的线程 不一定都是有指令的,就绪态的线程 可以去存指令,但是一旦存了指令了,在这些指令执行完之前,是不会 再有 组件或 os去 给它分配指令的
8.我们自己创建线程(例如 java中,不涉及线程池的),都是 要遵守普通的线程状态,以及“可运行线程池”的规则的,是有死亡状态的
9.连接池,可以看做是,存 IO通道的,不用 一直开启关闭连接,开启通道(获得通道)也直接去连接池中获取,connection.close也不代表 连接被关闭了,而是还回连接池了(这里可以用连接池的,一般不在乎 通道的关闭而释放共享资源)