锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 榪戜簺鏃墮棿鍦ㄥ紑婧愭柟闈㈢湅鍒癗etty錛岃瀵熷埌Netty鐨勯噸鍛藉悕綰跨▼鐨勭瓥鐣ョ被錛?/p> ThreadNameDeterminer銆傝繖涓帴鍙f湁涓や釜絳栫暐錛屼竴涓槸浣跨敤PROPOSED錛堝緩璁悕縐幫級錛岃繕鏈変釜鏄疌URRENT錛堝綋鍓嶅悕縐幫級 褰撳墠鍚嶇О鐨勭瓥鐣ユ槸鏈疄鐜扮殑錛屽彲鑳戒負浠ュ悗鎵╁睍鑰冭檻鍚с?/p> 鍙﹀灝辨槸ThreadRenamingRunnable榪欎釜綾伙紝榪欎釜綾婚噷闈㈡瀯寤哄嚱鏁頒紶鍏unnable鎺ュ彛錛屽拰proposed寤鴻鍚嶇О銆?/p> 鐢變簬鏈韓ThreadRenamingRunnable涔熸槸瀹炵幇Runnable綾葷殑錛屾墍浠ヤ綘鍦ㄨ嚜宸變笟鍔¢昏緫縐嶈繕鏄収鏍峰疄鐜癛unnable鎺ュ彛鏉ュ啓閫昏緫錛屽畬鍏ㄥ涓氬姟浠g爜娌℃湁渚靛叆銆?/p> 浠g爜涓ぇ姒傛槸榪欐牱鐨勬儏鍐碉細
//鏍規嵁瑙勫垯鎶婄嚎紼嬪悕瀛楄繘琛屼慨鏀?/span>
try {
runnable.run(); // 璋冪敤浼犲叆鎺ュ彛鐨剅un鏂規硶
} finally {
if (renamed)
// 鎭㈠涔嬪墠鐨勫悕瀛?/span>
}
}
鍙渶瑕佸湪鏋勫緩鐨勪綘鐨凴unnable鐨勬椂鍊欙紝閲嶆柊鍖呰涓涓嬪嵆鍙細
new ThreadRenamingRunnable(new OioWorker(acceptedChannel),
"Old I/O server worker (parentId: " + channel.getId() + ", " + channel + ')'));
榪欐牱鐨凞ecorator妯″紡錛岄噸鏂板皢Runnable鎺ュ彛榪涜浜?#8220;瑁呴グ”錛屼嬌鍏跺叿澶囦簡綰跨▼鍚嶇О鐨勫姛鑳姐?/p>
Runnable鎺ュ彛榪樻槸鍘熸潵鐨勬帴鍙o紝瀵箁un鏂規硶鐨勫啀嬈″皝瑁呬嬌鍏跺叿澶囦簡鍙﹀涓欏瑰姛鑳斤紝榪欏氨鏄疍ecorator妯″紡鐨勭簿鍗庢墍鍦ㄣ?/p>
綾諱技榪欐牱鐨勬暟瀛?/p>
1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 …
if ((n & -n) == n)
…
鐢變簬涓氬姟閫昏緫浠g爜瀹炲湪姣旇緝澶嶆潅錛屾澶勬護鎺変笟鍔′唬鐮佹妸綰跨▼绔炰簤鍏崇郴灞曠ず鍑烘潵錛?/p>
1綰跨▼———>鑾峰緱A閿?#8212;——>鑾峰緱B閿?#8212;——>閲婃斁B閿?#8212;———>閲婃斁A閿?/strong>
2綰跨▼———>鑾峰緱A閿?#8212;——>閲婃斁A閿?/p>
3綰跨▼-——————>鑾峰緱B閿?#8212;——>鑾峰緱A閿?/strong>
闂灝卞嚭鍦?鍜?綰跨▼涔嬮棿鐨凙B閿佸祵濂楀鑷存閿侀棶棰橈紝1綰跨▼鍦ㄦ病鏈夎幏寰桞閿佺殑鏃跺欙紝3綰跨▼寮濮嬭幏寰桞閿佺劧鍚庡張寰楀埌浜咥閿侊紝榪欐椂鍊欏氨瀹屽叏閲婃斁涓嶄簡A閿佷簡錛屾閿佷駭鐢熶簡銆?/p>
鐢變簬鏃墮棿鍏崇郴錛岄棶棰樻槸鐞嗘竻妤氫簡錛屽彧瑕佸垹鎺?綰跨▼鐨凙閿佸氨鍙互浜嗭紝褰撴椂榪樻槸浠旂粏浜嗚В榪囨槸鍚﹀垹闄?綰跨▼A閿侊紝鍙戠幇瀵逛笟鍔閿佹槸娌″繀瑕佺殑銆備絾鏄嚎紼?浼氫笉浼氫篃浼氬儚鍒氭墠涓鏍蜂駭鐢熺嚎紼嬫閿佸憿錛熶笉浼氾紝鍥犱負綰跨▼2閲屽茍涓嶄細寰楀埌B閿併?/p>
1綰跨▼———>鑾峰緱B閿?#8212;——>閲婃斁B閿?/p>
2綰跨▼-——————————>鑾峰緱A閿?#8212;———>閲婃斁A閿?/p>
3綰跨▼———>鑾峰緱B閿?#8212;——>鑾峰緱A閿?#8212;———>閲婃斁A閿?#8212;———>閲婃斁B閿?/p>
闂鏄閿侊紝浣嗘毚闇蹭簡涓ら儴鍒嗛棶棰橈細
1.榪囨棭鐨勮涓鴻嚜宸辮兘鎺у埗濂界珵浜夊叧緋伙紝瀵圭嚎紼嬮棿鐨勭珵浜夎繃鏃╃殑鍋氬嚭浜嗗垽鏂?/p>
2.姣忓璁捐涓涓攣灝卞鍔犱簡涓涓珵浜夌殑鍥犵礌錛屽敖閲忓皬蹇冿紝涓涓攣灝辨湁鍙兘鏄竴涓湴闆鳳紝涓涓嶅皬蹇冨氨鍙兘瀵艱嚧涓ラ噸鐨勯棶棰樸?/p>
鍦?a >銆妀ava騫跺彂緙栫▼瀹炶返銆?/a>榪欐湰涔︿腑浠嬬粛榪嘗eftRightLock錛岃緇嗕簡瑙h繖涓棶棰樼殑鏈嬪弸鍙互鍘繪煡涓嬭繖鏈功鐨?strong>絎崄绔?nbsp;閬垮厤媧昏穬鎬у嵄闄?/strong>
姝や功鏋佸叾璇︾粏鐨勪粙緇嶄簡LeftRightLock鍑虹幇鐨勫彲鑳斤紝鏈夊彲鑳芥槸鍥犱負鑷繁緙栧啓紼嬪簭鐨勭枏蹇藉鑷達紝鎴栬呯敱浜庡閿佺殑璁よ瘑涓嶈凍瀵艱嚧錛岃澶氬師鍥犻兘鑳芥壘鍒拌В閲娿?/p>
Netty鐨勪竴浜涚悊瑙o紝璇峰弬鐓э細
http://www.kafka0102.com/2010/06/167.html
http://rdc.taobao.com/team/jm/archives/423
Netty鐨勯珮鍙潬鎬э紝鍙幾緙╂э紝浠ュ強鏁堢巼鐨勭‘璁╀漢鐫榪鳳紝涓轟粈涔圢etty榪欎箞蹇憿錛?/p>
Netty楂樻晥鐨勫師鍥狅細
nio鐨勫疄鐜板茍涓嶅鏉傦紝浣嗘兂璁╀綘鐨勫簳灞傞氳錛屾晥鐜囷紝浠ュ強鍙幾緙╂у拰楂樺彲闈犳у仛濂斤紝榪樻槸鏋佸叿鎸戞垬鎬х殑銆?/p>
鐩墠鏈変釜欏圭洰鏄嚜宸卞啓鐨刵io錛屼絾鏁堢巼姣旇搗netty鏉ワ紝灝忎簡鍑犱釜鏁伴噺綰э紝褰撶劧浠ユ湰浜轟竴宸變箣鍔涜兘鍋氬埌鐩墠榪欎釜鎯呭喌錛岃繕綆楄嚜宸辨弧鎰忥紝涔熺敤鍒扮敓浜х幆澧冧腑浜嗭紝涓涓獁eb game錛屽強鏃舵ц姹傚緢楂橈紝涓鍙皊erver錛?000浜烘病闂銆傚悓鏃跺箍鎾秷鎭湪10000浜轟互鍐咃紝褰撶劧鏈変簺浼樺寲鏄湪涓氬姟閫昏緫灞傞潰鐨勩傚綋鐒舵瘮璧穘etty鐨勬晥鐜囨潵璁茶繕鏄樊浜嗗嚑涓暟閲忕駭銆?/p>
闄や簡楂樻晥錛孨etty鍦ㄦ墿灞曟ф柟闈㈠仛鐨勪笉閿欙細
鏈鍚庯紝鍩轟簬Netty鎴戠畝鍗曞皝瑁呬簡涓涓獁eb game鎵鍏峰鐨勪竴浜汫ameBuffer錛岀洰鍓嶆瘮杈冪畝闄嬶紝鍚庣畫鍙兘鍔犲叆涓浜涘埆鐨勫姛鑳姐?/p>
欏圭洰鍦?https://github.com/cuixin/XGameEnginee/