SQL是怎樣執(zhí)行的 下面的查詢SQL語句是經(jīng)過哪些階段,然后把數(shù)據(jù)返回給客戶端的? 下面的更新語句又是怎樣執(zhí)行的? 我們都知道磁盤IO性能的問題,那么針對(duì)更新操作這種隨機(jī)寫,...
Set接口繼承了Collection接口,Set是不包含重復(fù)元素的集合。準(zhǔn)確點(diǎn)說,sets中不會(huì)包含e1與e2,e1與e2是e1 .equals(e2)的關(guān)系,并且最多包含一...
Collection Framework成員如下 Collection Set List Map SortedSet SortedMap HashSet TreeSet Ar...
默認(rèn)是非公平鎖 這里調(diào)用了內(nèi)部類的實(shí)現(xiàn) 先看state 值為1表示鎖已經(jīng)被獲取 值為0表示可以獲取鎖,在釋放鎖的時(shí)候也要將該值設(shè)為0這里嘗試將state設(shè)置為1,也就是獲取到...
線程池核心參數(shù) corePoolSize核心線程數(shù),當(dāng)有任務(wù)提交的時(shí)候,便會(huì)創(chuàng)建一個(gè)線程,如果創(chuàng)建的線程數(shù)量達(dá)到核心線程數(shù),后續(xù)任務(wù)便會(huì)放入阻塞隊(duì)列中。可以使用prestar...
selector在沒有結(jié)果的情況下,依然被喚醒,導(dǎo)致一直空輪詢,cpu100%直接定位到NioEventLoop 第二個(gè)case,SelectStrategy.SELECT ...
在上一篇實(shí)例化NioServerSocketChannel中, 看看DefaultChannelPipeline的繼續(xù)結(jié)構(gòu),并不復(fù)雜。 TailContext和HeadCon...
前面分析過bind的流程,里面創(chuàng)建了channel。 這個(gè)channelFactory類型由之前的文章分析可知,是ReflectiveChannelFactory。 Refl...
在bind方法的過程中initAndRegister方法內(nèi)調(diào)用了NioEventLoopGroup的register方法。這個(gè)方法位于父類MultithreadEventLo...
接著上篇例子看 先看構(gòu)造方法。 提供了兩個(gè)構(gòu)造方法,如例子中,我們用的是空構(gòu)造。接著調(diào)用group方法 調(diào)用父類的構(gòu)造方法,傳入bossGroup 接著設(shè)置channel 接...
NioEventLoopGroup 直接拿官方的EchoServer類做分析 直接看 EventLoopGroup負(fù)責(zé)管理一組EventLoop。boss用來accept客戶...
Netty是一個(gè)異步的事件驅(qū)動(dòng)網(wǎng)絡(luò)應(yīng)用框架。 1. 核心組件 ChannelsJava NIO的一個(gè)基礎(chǔ)構(gòu)造??梢哉J(rèn)為它就是入站或者出站的一個(gè)載體。因此,它可以被打開或者關(guān)閉...
cpu100% 利用top工具找到最耗CPU的進(jìn)程 查看該進(jìn)程中最耗CPU的線程 通過jstack查找該線程 內(nèi)存OOM 有可能是內(nèi)存分配過小 對(duì)象被頻繁申請(qǐng)沒有釋放 不斷創(chuàng)...