自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 TCP状态转换流程

TCP一次Server和Client建立连接,关闭连接的完整流程图如下所示:实线代表客户端流程,虚线代表服务端流程。client:1. 发起连接请求,三次握手中的第一次,client socket进入SYN_SENT状态3. 收到server对于第一次握手请求包的ack应答(同时包含server的连接建立请求),发送client对于server连接建立请求的ack响应(

2013-04-14 11:22:06 947

原创 Nginx模块的配置与解析

1. 模块的定义struct ngx_module_s { ngx_uint_t ctx_index; ngx_uint_t index; ngx_uint_t spare0; ngx_uint_t spare1; ngx_uint_t spa

2013-04-13 23:11:16 683

翻译 "Double-Checked Locking"失效问题详解

Double-Checked Locking原本是为了解决多线程场景下的懒加载问题。但是当用Java实现时,如果不用额外的同步而造成的结果是不稳定的。总结原因有如下几个点:1) 由于多线程同时进入临界区,造成重复创建单例对象2) 由于编译器和处理器的指令重排,造成将未完全初始化的对象暴露出去实现懒加载的解决方案:1) 将成员变量声明为static,不用double-checked

2013-04-13 12:42:44 1694

原创 AQS的应用-FutureTask | CountDownLatch | ReentrantLock

AbstractQueuedSynchronizer是Java并发包的基础,依托AQS所实现的CHL队列,JDK实现了很多实用的工具1. FutureTask2. CountDownLatch3. ReentrantLock4. ReentrantReadWriteLock5. Semaphore上面这几个类都是对AQS的具体应用,都是利用了AQS中的共享状态变量state

2013-04-09 22:36:58 759

原创 Tomcat NIO

Tomcat从6.0版本开始支持NIO, 主体部分代码集中在NioEndpoint这个类当中,Tomcat NIO采用经典的反应堆模式设计,其中核心的组件包括:1) NioEndpoint (组装器)2) Acceptor (独立子线程)3) Poller (独立子线程)(反应堆模式中的multiplexer的wrapper)4) Worker (独立子线程)(反应堆模式中的dis

2013-04-08 08:57:59 1300

原创 Java并发包--AbstractQueuedSynchronizer

官方文档:AQS提供了一种依赖先进先出队列(FIFO)的用于实现阻塞锁和相关同步器的框架。并且为大多数依赖一个单个原子int变量来表达其状态的同步器提供了一个非常有用的基础支持。AQS的子类必须实现在AQS中定义的保护方法,这些保护方法可以改变同步器的状态,而状态的改变要依赖同步器自身的获取和释放的状态。除此以外,AQS中的其他方法实现了所有的入队和阻塞机制。子类可以定义其他的状态变量,但是get

2013-04-04 17:58:46 906

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除