JAVA高性能编程
willwill9572
这个作者很懒,什么都没留下…
展开
-
线程池学习笔记
最大线程数只有在队列满了以后才开始工作。 任务最大容量=最大数量+等待队列最大数量,超过则拒绝执行,会需要自己写拒绝策略,不然会抛出异常。 如下图: 如果将核心线程池数量设置成0,最大线程数量为int最大值,则适用场景为不可控的无法预估到底有多少任务同时提交,不过不建议设置成int最大值,会造成不稳定,设置成1000以下。 如下图: 定时任务的执行方式,线程数量的控制,如果任务大多数是同时被执行,那么需要更多的线程数,注意那个5,定时任务的本质是延时队列。 线程池原理流程图如下: ..原创 2020-07-06 15:38:05 · 349 阅读 · 0 评论 -
NIO学习笔记
1.NIO的三个核心组件,Buffer缓冲器,Channel通道,Selector选择器。 Buffer缓冲器 缓冲区本质上是一个可以写入数据的内存块(类似数组),然后可以再次读取。此内存块包含在NIO Buffer对象中,该对象提供了一组方法,可以更轻松地使用内存块。 相比较直接对数组的操作,BufferAPI更加容易操作和管理。 使用Buffer进行数据写入与读取,需要进行如下四个步骤: 将数据写入缓冲区。 调用buffer.flip(),转换为读取模式 缓冲区读取数据 调用buffer.clear(原创 2020-07-05 19:59:24 · 122 阅读 · 0 评论