并发编程(八)Unsafe&Atomic


Unsafe通过反射获取UnsafepublicclassUnsafeInstance{publicstaticUnsafereflectGetUnsafe(){try{Fieldfield=Unsafe.class.getDeclaredField("theUnsafe");f

并发编程(七)Tool


SemaphoreSemaphore字面意思是信号量的意思,它的作用是控制访问特定资源的线程数目。获取释放资源详细流程简单使用构造方法publicSemaphore(intpermits)publicSemaphore(intpermits,booleanfair)permits:可用的初始许可证数

Netty(二)Netty编解码与粘包拆包


编解码涉及编解码的组件主要有Channel,ChannelPipeline,ChannelHandler,他们之间的关系已在上篇文章netty核心功能与线程模型有详细说明,下面主要介绍他们在编解码中担任的角色。Channel:一个Channel包含了一个ChannelPipeline,而Channe

并发编程(六)ReentrantLock


Java并发编程核心在于java.concurrent.util包而juc当中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这个行为的抽象就是基于AbstractQueuedSynchronizer简称AQS,AQS定义了一套多线程访问共享资源的同步器框

Netty(一)Netty核心功能与线程模型


Netty官网Netty线程模型模型解释:Netty抽象出两组线程池BossGroup和WorkerGroup,BossGroup专门负责接收客户端的连接,WorkerGroup专门负责网络的读写BossGroup和WorkerGroup类型都是NioEventLoopGroupNioEventLo