???????????????????????????????????????
????· ????????λ
????· ??????????
?????????????????????????????????????????????????????????????????????offer?????????????????????????????????????????????????????????Щ??????
???????????
???????????????????????????????????????????????????????????Щ??????????????Щ????????????????????????д????????????????β??????????Щ??????????????е??Щ??????????????????????????????????????????д???????????????????????飬?????????????????????????????????????????????????????????е????????????????????????????????????????????????????????????????????????
?????????????
??????????????????????????????????????
???????&……%??#*&??@%????????????????????????????????????????????????????????
??????????????????????????netty?????????netty???????????
?????????????????netty?????netty???Reactor???????·?????????????????????????????????????????????????boss?????work?????????boss??????????????????accept????????????accept??????????????????socket????????NioSocketChannel?У???????work?????????work????????????read??write???????????????????????????????й?????????????飬???????????????????е???????????????????????????
????????????????????????…???????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????£?????????????????????????????????????netty???????????????????????????work?????????н??д???????????????????qps??????????????????????????????????????????????????????????work???????????????μ?????????????????
?????????????????ν?????
????????????????????????????task???????????????????????У???????????work????????????write?????
???????????????????nio??selector???????bug???
??????????????selector??select?????????????epoll???????????????????????cpu??
??????????????ν????????
????????????????netty????????????&^%&$^????netty???????????飩
?????????????????????????????и????????????
????????е??&&…………????##@????????????????????????ν???AB??飬??ε?????????
???????????????? ???????????????????????????????java???????ɡ?
???????????????????????????????????????????????????????????????????????????????????netty??????????????????????????????????????????????????????????????
????????????
????1??????
???????????????????????????????????????????????????????????????????????
????1??“???????????????”
????2??“?????е?coreNum??maxNum???????”
????3??“????????????У???????????????”
?????????????
???????????????????????
?????????????*??????????
?????????????????????????????
??????????????????????????????????е????????????????????????????????????&&??&???????????????????????????5???????????10@@@
??????????????????????…
????????????????????Σ???????????????????????????????????????
??????????????????????…
????????????????????????Σ???????????????У????????????????????
??????????????????????…
????????????????????????????????л??????С???????????????????????????????????????????????????????????????????????5????????????6???????????…
??????????????????????…
??????????????6??????????????????..
???????????????????
????????????????в?????5?????????????????????????????????????????л????6?????????????..
???????????????????????????????????????????????
???????????????5????????running????????????????????????????
???????????????????????????
????????????????????????????????????????10??????????????5???????????????????????в?????浽???????е?????????????????????л???5??????
????????????????????е????????10????????????????????????
??????????????????????reject???????????????????????????????????????…
?????????????????????????????????????????е???????????????????е????????????
???????…????????????????????????????????????????????…????е??????????????????е???…
?????????????????????????????????????
????????????????????????????????????????????????????????????????…???…???????????????????????
??????????????????????????ú?????
???????……..
?????????????????????
????????????????£?
???????????java???????????
????2?????????
?????????????????????У?????????Synchronized??ReentrantLock?????????????????????д????
?????????????
???????????????Java?е???????
???????????Synchronized??ReentrantLock…??д??????????о???????±????д???????????????
????????????????????Synchronized?????????
??????????Synchronized??JVM??????????????????????????????monitorenter??monitorexit????????????????????????????????????????????????????????1.6???????????????????????????????????????????????????й??????????????????????…&&@@#????????????????????????????
?????????????????????????????????ReentrantLock??????…
???????ReentrantLock?????AQS????
??????????????AQS??
?????????AQS????????????????state?????CAS??????????????????????????????????????????????????????state????????????????????Waiter??????????????????????У???????????????&&&$$???????????
??????????????CAS???????????
???????CAS?????unsafe???compareAndSwap??????????????????Ц??
?????????????????????????????????????????????
???????????????????…??????????????????????????????????????????????е???????????????????????????????????????????????????????????????????????????????????????????????????….???????????е???????????????????????????????????????…??
??????????????????????????????????????????????
????????????????…????????X86???????cmp?????????????????????…
?????????????????????CAS???????????
??????????CAS??????????ABA????
?????????????????
????????????????V?????????V???ζ?????????A????????????????????鵽???????A????????????????б???????????????????????????????????????????B?????????A????CAS???????????????????б???????
????????????????????
???????????????????…???????????????????????????java??????????????????б????????????”AtomicStampedReference”?????????????????????汾?????CAS????????
??????????????????????????????????????????
???????….????????
???????????????????£?????????????
???????????java?????AQS
????java?е?CAS
???????????synchronized
???????????ReentrantLock
????java?е?Unsafe
????java volatile???????
???????????Object.wait/notify??????
???????????synchronized??JVM???
????3??ConcurrentHashMap
???????????????????????????????HashMap????????????????HashMap?????????????????????????ConcurrentHashMap??????????????μ?????
?????????????
????????????ConcurrentHashMap??????
???????@????@@?????????????????@??????????1.8????????????
??????????1.8????
?????????1.8???????????????????????????…
??????????????o???????????
?????????????????????????????????……??……??……??
??????????????o???????????????
?????????????????????????????????????????????????????????????????????????
??????????????????????????????size????????????????
???????size??????????????Map?е??????????
?????????????….
??????????ú???size?????????????????????????????????…
??????????????????size????????????????????????????????????????????????
???????…@????@@…???????
???????????????????…..????????AtomicInteger???????м??…?????????β????????????????????????????????Ц…
???????????????????????????????AtomicInteger???????????????????????????
????????±???…??????????volitile?????????????…????????????????????…
?????????????????????????????jdk??????????…
?????????????….
?????????????????????????????????????
???????………………
????????ConcurrentHashMap???????д?????????????£?????????????
???????????ConcurrentHashMap??1.8??
??????ConcurrentHashMap1.7??1.8???????
????ConcurrentHashMap????????????
???????????ConcurrentHashMap1.8?????????