本文共 1317 字,大约阅读时间需要 4 分钟。
线程池的状态
①线程池的初始状态的Running,能够接受新任务,也能处理现在的任务 ②线程池处在SHUTDOWN状态时,不接收新任务,但能处理已添加的任务。 ③线程池处在STOP状态时,不接收新任务,不处理已添加的任务,并且会中断正在处理的任务。 ④当线程池变为TIDYING状态时,意味着所有任务都结束了,执行钩子函数terminated ⑤线程池彻底终止,就变成TERMINATED状态。http1.0 1.1的区别
①1.0用keep-alive去告知服务器建立一个长连接,1.1默认支持长连接
②1.0每次发送都是直接header+body,1.1连接起来先用header试探是否连接ok,然后直接发送body,节省带宽 ③1.0是没有host域的,1.1才支持,也就是说web server上的多个虚拟站点可以共享同一个ip和端口是线程安全的,当有新元素添加进去的时候,拷贝一份原来的list,复制到一个新的里面
特点:
1、读写分离,读和写分开 2、最终一致性 3、使用另外开辟空间的思路,来解决并发冲突相同点是:
①段式存储管理和页式存储管理都离散的管理了进程的逻辑空间。 不同点是: ①页是物理单位,段是逻辑单位。 ②分页是为了合理利用空间,分段是满足用户要求 ③页大小由硬件固定,段长度可动态变化 ④页表信息是一维的,段表信息是二维的。最左前缀原则是联合索引下的一个概念,一个索引可以最多包含16列,可以用于索引中包含索引中所有列的查询条件的语句, 或者包含索引中的第一列的查询条件的语句, 以及索引中前两列, 索引中的前三列, 以此类推. 如果你在索引定义中以正确的顺序指定列, 那么联合索引就可以加速同一张表中的多个不同类型的查询.
如果你创建一个联合索引, 那这个索引的任何前缀都会用于查询, (col1, col2, col3)这个联合索引的所有前缀 就是(col1), (col1, col2), (col1, col2, col3), 包含这些列的查询都会启用索引查询.
其他所有不在最左前缀里的列都不会启用索引, 即使包含了联合索引里的部分列 也不行. 即上述中的(col2), (col3), (col2, col3) 都不会启用索引去查询.
当Java程序需要使用某个类时,如果该类还未被加载到内存中,JVM会通过加载、连接(验证、准备和解析)、初始化三个步骤来对该类进行初始化。
类的加载是指把类的.class文件中的数据读入到内存中,通常是创建一个字节数组读入.class文件,然后产生与所加载类对应的Class对象。加载完成后,Class对象还不完整,所以此时的类还不可用。当类被加载后就进入连接阶段,这一阶段包括验证、准备(为静态变量分配内存并设置默认的初始值)和解析(将符号引用替换为直接引用)三个步骤。最后JVM对类进行初始化,包括:
1)如果类存在直接的父类并且这个类还没有被初始化,那么就先初始化父类;
2)如果类中存在初始化语句,就依次执行这些初始化语句。转载地址:http://sgxrn.baihongyu.com/