目錄 相關(guān)概念介紹實現(xiàn)原理介紹源碼分析總結(jié)參考地址 相關(guān)概念介紹 數(shù)組采用一段連續(xù)的存儲單元來存儲數(shù)據(jù)。 線性鏈表具有鏈接存儲結(jié)構(gòu)的線性表,它用一組地址任意的存儲單元存放線性...
一、NIO Reactor模型 1、Reactor模式思想:分而治之+事件驅(qū)動 1)分而治之 一個連接里完整的網(wǎng)絡(luò)處理過程一般分為accept、read、decode、pro...
前言 上一篇中已經(jīng)分析了ReentrantLock,下面我們來看一下讀寫鎖ReentrantReadWriteLock。在這之前,先看一下其結(jié)構(gòu)圖: ReadLock/Wri...
前言 上一篇中已經(jīng)分析了關(guān)鍵的AQS抽象隊列同步器,下面我們來看一下使用AQS來實現(xiàn)的可重入獨占鎖ReentrantLock。ReentrantLock是可重入的獨占鎖,同時...
前言 本文是對并發(fā)編程中的鎖一個系統(tǒng)性總結(jié)。 什么是死鎖 1. 定義:theadA已經(jīng)持有了資源2,同時還想申請資源1,theadB已經(jīng)持有了資源1,同時還想申請資源2,所以...
前言 前面兩篇已經(jīng)介紹了Acceptor、Poller和SocketProcessor的處理流程,下面我們來具體看一下后續(xù)流程,如何一步一步的將scoket轉(zhuǎn)換成Reques...
前言 前面已經(jīng)初步分析請求流程,下面我們繼續(xù)。 Poller流程處理 從上一篇直到Acceptor接受到請求并注冊到Poller中的events緩存棧中,下面來想起看一下Po...
前言 在前面[Tomcat學(xué)習(xí)筆記之啟動分析(Connector)(七)]一文中,介紹了Connector容器的初始化與啟動,這里以NioEndpoint為例,詳細分析一下請...
前言 在Container啟動一篇中設(shè)計到很多關(guān)于管道的,這里做一篇詳細的介紹。 整體結(jié)構(gòu) 在[Tomcat學(xué)習(xí)筆記之啟動分析(Container)(六)]一文中設(shè)計到很多P...
前言 上面一篇主要介紹了Container,下面我們來看下Connector容器。 Connector結(jié)構(gòu)圖 Connector具體是用ProtocolHandler來處理請...
前言 通過上面一篇的介紹,Service主要啟動了Container和Connector,我們先來看Container容器。 Container的子類關(guān)系圖 Containe...
前言 通過上面一篇的介紹,我們開始分析Service的啟動過程。 initInternal()方法 流程比較清晰,不做詳細介紹。這里看下幾個初始化的容器: EngineEng...
前言 通過上面一篇關(guān)于生命周期的介紹,我們知道子類只要實現(xiàn)#initInternal()和#startInternal()方法即可。 initInternal()方法 從上面...
前言 在Catalina啟動完成后,接下來就應(yīng)該是Server的啟動分析,但是由于后面的組件都與Lifecycle密不可分,所以這里先介紹Lifecycle機制。 生命周期 ...
Catalina啟動分析 1. #load()方法: 主要流程如下: 解析conf/server.xml并創(chuàng)建Server對象,賦值Catalina,Server的相關(guān)屬性...