ThreadPoolExecutor源码分析及阻塞提交任务方法

2018-06-28
阅读 14 分钟
7k
用 ctl 的高3位来表示线程池的运行状态, 用低29位来表示线程池内有效线程的数量。ctlOf() 方法用于计算出ctl的值。runStateOf()和workerCountOf()方法分别通过CAPACITY来计算得到其runState和workerCount,CAPACITY=29个1。

ExecutorCompletionService

2018-06-26
阅读 5 分钟
4.6k
ExecutorService 使用ExecutorService提交多个任务时,需要保存Callable对应的Future。 需要反复循环判断future是否完成。 {代码...} CompletionService 获取结果 使用CompletionService可以简化操作。 {代码...} CompletionService 原理 构造方法 {代码...} 初始化自身属性: this.executor 真正的线程池 this.completi...

ThreadPoolExecutor执行过程分析

2018-06-23
阅读 11 分钟
30.6k
ThreadPoolExecutor {代码...} corePoolSize:线程池核心线程数(平时保留的线程数) maximumPoolSize:线程池最大线程数(当workQueue都放不下时,启动新线程,最大线程数) keepAliveTime:超出corePoolSize数量的线程的保留时间。 unit:keepAliveTime单位 workQueue:阻塞队列,存放来不及执行的线程 ArrayBlockingQ...

MySQL中utf8字符集、排序规则及utf8mb4_bin列大小写不敏感方法

2018-06-16
阅读 2 分钟
20.5k
utf8mb4: A UTF-8 encoding of the Unicode character set using one to four bytes per character. utf8mb3: A UTF-8 encoding of the Unicode character set using one to three bytes per character. utf8: An alias for utfmb3.([链接]

字符编码

2018-06-16
阅读 2 分钟
3.3k
ASCII 编码 ASCII占用8位(bit)。8个bit可以表示256个字符。 ASCII码只规定了128个字符的编码。 ASCII码的问题是字符太少,不能满足世界各国的需要。所以各国其他编码利用剩余的128个字符定义各自不同的编码。 GB2312 & GBK 汉字GB2312 使用两个字节(16位),最多表示65536个字符。 一个小于127的字符的意义与原来...

Java Service Provider Interface

2018-06-13
阅读 9 分钟
4.1k
其中JDBC驱动通常使用Class.forName("com.mysql.jdbc.Driver");来引入所需要的驱动。在编译期间不用引入具体jdbc的具体实现类(不管mysql还是oracle等)。所以JDBC包的scope应该设置为runtime。

SpringMVC的Handler初始化及获取

2018-03-30
阅读 15 分钟
7.8k
HandlerMethod类 |注册Handler InvocableHandlerMethod 对请求进行处理 WebDataBinderFactory HandlerMethodArgumentResolverComposite ServletInvocableHandlerMethod 处理返回值 HandlerMethodReturnValueHandlerComposite MethodParameter[] parameters 封装了参数信息:参数的的索引位置,类型,注解,参数名等信息 ...