锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品无码你懂的网站,中文字幕乱码亚洲无线三区,亚洲精品成人在线 http://www.tkk7.com/feuyeux/category/47049.htmlBelong to Eric Han zh-cn Wed, 25 Apr 2012 04:21:57 GMT Wed, 25 Apr 2012 04:21:57 GMT 60 杞瀹㈡埛绔殑瀹炵幇 http://www.tkk7.com/feuyeux/archive/2011/07/08/353948.htmlLu Han Lu Han Fri, 08 Jul 2011 08:01:00 GMT http://www.tkk7.com/feuyeux/archive/2011/07/08/353948.html http://www.tkk7.com/feuyeux/comments/353948.html http://www.tkk7.com/feuyeux/archive/2011/07/08/353948.html#Feedback 1 http://www.tkk7.com/feuyeux/comments/commentRss/353948.html http://www.tkk7.com/feuyeux/services/trackbacks/353948.html Scenario 鏈嶅姟鍣?:瀹㈡埛绔痭 鍙戦丯otification緇欏鎴風(fēng)鐨?/span>鍚?/span>澶勭悊 鏈嶅姟鍣ㄧ緇欑涓涓鎴風(fēng)鍙戦乶otification錛岀劧鍚庡湪闄愬畾鏃墮棿鍐咃紝絳夊緟瀹㈡埛绔綔鍑哄洖搴?#8212;鍚戞湇鍔″櫒鍙戦乺equest銆傚鏋滃鎴風(fēng)涓鐩存病鏈夊洖澶嶏紝鏈嶅姟鍣ㄤ細鍦ㄥ埌杈鵑檺瀹氭椂闂村悗錛屽悜絎簩涓鎴風(fēng)鍙戦乶otification銆傚鏋滃鎴風(fēng)鍦ㄩ檺瀹氭椂闂村唴鍥炲錛屾湇鍔″櫒绔斁寮冨啀緇欏叾浠栧鎴風(fēng)鍙戦佹秷鎭?/span>Design 鏈嶅姟鍣ㄣ佸鎴風(fēng)浣跨敤socket鍙戦佸拰鎺ユ敹淇℃伅 鍙戦佺瀛樺湪涓涓鎴風(fēng)鍒楄〃錛屾瘡嬈″彂閫佷竴緇欎竴涓鎴風(fēng)錛屽彂閫佸悗錛屽悜Helper鍙戦佹坊鍔犺瀹㈡埛绔痠d鐨勮姹傘?br /> 瀹㈡埛绔敹鍒頒俊鎭細鍚慔elper鍙戦佸垹闄よid鐨勮姹傘?br /> Helper鏀跺埌add鏃?/span>錛屽惎鍔ㄤ竴涓?/span>ScheduledExecuto rService綾葷殑 schedule錛?/span> 寤舵椂鍚姩 涓涓嚎紼嬶紝騫跺皢璇?/span>schedule緙撳瓨 銆俽emove鏃訛紝浠庣紦瀛橀噷鍙栧嚭 schedule騫跺仠姝㈠畠銆傚鏋滃湪寤舵椂鏃墮棿鍐咃紝綰跨▼娌℃湁琚仠姝紝瀹冧細琚墽琛岋細浠庣紦瀛樹腑鍙栧嚭錛屽憡璇夋湇鍔″櫒鍚戜笅涓涓鎴風(fēng)鍙戦佽姹傘?/span> UML
Code
Server public class Server { public static void main(String[] args) throws Exception { final String id = " 100 " ; ServerSocket serverSocket = new ServerSocket(IO.BIO_TCP_PORT); System.out.println( " Server is listening on port: " + IO.BIO_TCP_PORT); Socket socket = null ; try { socket = serverSocket.accept(); } catch (Exception e) { System.out.println( " accept socket error. " ); } SendingNotification sender = new SendingNotification(id, socket); sender.start(); ReceivingRequest receiver = new ReceivingRequest(socket); receiver.start(); } SendingNotification public class SendingNotification extends Thread { private String id; private Socket socket; public SendingNotification(String sdId, Socket socket) { this .id = sdId; this .socket = socket; } @Override public void run() { Helper.getInstance().add(id); OutputStream outputStream = null ; byte [] buffer = new byte [ 1024 ]; try { outputStream = socket.getOutputStream(); buffer = (id + " \n " ).getBytes(); outputStream.write(buffer); outputStream.flush(); } catch (Exception e) { System.out.println( " don't send success " ); try { outputStream.close(); socket.close(); } catch (Exception e1) { } } } } ReceivingRequest public class ReceivingRequest extends Thread { private Socket socket; public ReceivingRequest(Socket socket) { this .socket = socket; } @Override public void run() { BufferedReader in; boolean finished = false ; while ( ! finished) { try { in = new BufferedReader( new InputStreamReader(socket.getInputStream())); String line = in.readLine(); if (line == null ) { Thread.sleep( 100 ); continue ; } Helper.getInstance().remove(line); in.close(); socket.close(); finished = true ; } catch (Exception e) { System.out.println( " receive fails to run. " ); } } } } Helper public class Helper { private static Helper instance = new Helper(); private ConcurrentHashMap < String, Schedule > cache = new ConcurrentHashMap < String, Schedule > (); private int timeout = 10 ; public static Helper getInstance() { return instance; } private Schedule addTask( final String id) { final Schedule schedule = new Schedule(); schedule.schedule( new Runnable() { public void run() { doNext(id); schedule.shutdown(); } }, timeout, SECONDS); return schedule; } private void doNext(String id) { Schedule schedule = cache.remove(id); System.out.println( " time out and do next well. " ); System.out.println( " total time= " + schedule.getSeconds()); } public void add( final String id) { Schedule schedule = addTask(id); cache.put(id, schedule); System.out.println( " Add to cache successfully " ); } public void remove( final String id) { Schedule schedule = cache.remove(id); if (schedule == null ) System.out.println( " no schedule exist. " ); else { schedule.shutdown(); System.out.println( " Remove to cache successfully " ); } } Schedule public class Schedule { ScheduledExecutorService excutor; private long startTime; public Schedule() { excutor = Executors.newSingleThreadScheduledExecutor(); startTime = System.currentTimeMillis(); } public long getTotalTime() { long endTime = System.currentTimeMillis(); return endTime - startTime; } public String getSeconds() { long s = getTotalTime() / 1000 ; return s + " seconds " ; } public void schedule(Runnable command, long delay, TimeUnit unit) { excutor.schedule(command, delay, unit); } public void shutdown() { excutor.shutdownNow(); } } Client public class Client { public static void main(String[] args) { Socket socket; try { socket = new Socket(IO.SERVER_IP, IO.BIO_TCP_PORT); readLine(socket); } catch (UnknownHostException e) { } catch (IOException e) { } catch (InterruptedException e) { } } private static void readLine(Socket socket) throws IOException, InterruptedException { BufferedReader in = new BufferedReader( new InputStreamReader(socket.getInputStream())); PrintWriter out = new PrintWriter(socket.getOutputStream(), true ); boolean flag = true ; while (flag) { String command = in.readLine(); if (command == null ) { flag = true ; continue ; } else { // Thread.sleep(2000); out.println(command); out.flush(); out.close(); in.close(); socket.close(); flag = false ; } } } IO public interface IO { String SERVER_IP = " 127.0.0.1 " ; // "192.168.225.166"; int BIO_TCP_PORT = 9109 ;
]]>Java綰跨▼姹犵被ThreadPoolExecutor嫻呮瀽 http://www.tkk7.com/feuyeux/archive/2010/12/04/339799.htmlLu Han Lu Han Sat, 04 Dec 2010 11:09:00 GMT http://www.tkk7.com/feuyeux/archive/2010/12/04/339799.html http://www.tkk7.com/feuyeux/comments/339799.html http://www.tkk7.com/feuyeux/archive/2010/12/04/339799.html#Feedback 0 http://www.tkk7.com/feuyeux/comments/commentRss/339799.html http://www.tkk7.com/feuyeux/services/trackbacks/339799.html 鏈枃鏄java綰跨▼姹犵殑綺楁祬鍒嗘瀽錛岃閲庡眬闄愪簬綰跨▼姹犵殑鍩烘湰瀹炵幇錛屼笉鍖呭惈鐢熷懡鍛ㄦ湡錛岀姸鎬佺鐞嗐?/span>
綰跨▼姹犵殑鐗圭偣鏄皢浠誨姟鐨勬彁浜ゅ拰鎵ц鍒嗗紑銆傝繖鏍峰仛鐨勫ソ澶勬槸錛岃兘浣垮鐞嗗櫒灝介噺澶氬湴鍚屾椂鎵ц浠誨姟銆?br />
涓烘錛岀嚎紼嬫睜鎻愪緵浜嗕袱涓鑹詫細
浠誨姟 task
鎵ц浠誨姟鐨勫伐浜?worker
涓庢鐩稿叧錛岄渶瑕佽冭檻錛?br />
宸ヤ漢鐨勬暟閲忥細
宸ヤ漢鏁伴噺鐨勮冮噺鏄嚎紼嬫睜璁捐鐨勪竴涓叧閿傚洜姝わ紝榪欎竴鐐圭敱鏋勯犵嚎紼嬫睜鏃訛紝鎻愪緵鐨勫ご涓や釜鍙傛暟鍐沖畾銆?br />
鏈灝忛泧浣f暟閲?corePoolSize
鏈澶氬伐浜烘暟閲?maximumPoolSize
浣曟椂瑙i泧澶氫綑鏈灝忛泧浣f暟閲忕殑宸ヤ漢錛?br />
宸ヤ漢澶氫綑浠誨姟鏃訛紝瀹冧滑浼氱瓑寰呬換鍔$殑鍒版潵錛屽鏋滆瀹氭椂闂村唴錛岃繕娌℃湁浠誨姟錛岄偅鎴戜滑灝辮В闆囧浣欑殑宸ヤ漢銆?br />
榪欎釜瑙勫畾鐨勬椂闂村氨鏄瀯閫犲瓙閲岀殑絎笁錛岀鍥涗釜鍙傛暟銆?br />
鑳芥帴鍙楃殑浠誨姟鏁伴噺錛?br />
涓涓伐浜猴紝鏌愪竴鏃墮棿鍙兘澶勭悊涓涓換鍔°傚伐浜虹殑鏁伴噺鏄湁闄愮殑錛屽洜姝ゅ浣欏伐浜烘暟閲忕殑浠誨姟鏉ヤ簡鏃訛細
綰跨▼姹犲氨瑕佽冭檻鏄惁鎺ュ彈
Y:
澶勪簬絳夊緟涓殑浠誨姟鍫嗙Н鍒板灝戝氨涓嶅啀鍏佽鎺ュ彈浠誨姟 錛?br />
瑙勫畾絳夊緟浠誨姟鍒楄〃鐨勫閲廩bound]錛岃揪鍒板閲忓悗涓嶅啀鎺ュ彈鏂頒換鍔°?br />
鏃犻檺鍒跺湴鎺ュ彈絳夊緟浠誨姟[unbound]
璁劇疆浣曠浠誨姟絳夊緟鍒楄〃鐢辨瀯閫犲瓙鐨勭浜斾釜鍙傛暟鍐沖畾銆?br />
long keepAliveTime, TimeUnit unit
N:
浠ヤ綍縐嶆柟寮忔嫆緇濓細
鐢辨瀯閫犲瓙鐨勭涓冧釜鍙傛暟鍐沖畾銆?br />
絎叚涓弬鏁板喅瀹氫簡
宸ヤ漢鎵嬮噷鎵ц浠誨姟綰跨▼鐨勫伐鍘傛柟娉曘?br />
宸ヤ綔鍘熺悊錛?br />
1.褰撳伐浜烘暟閲忔病鏈夎揪鍒版渶灝忛泧浣f暟閲忔椂錛屾瘡褰撲換鍔℃潵涓達紝綰跨▼姹犻兘瑕佸垱寤轟竴涓伐浜猴紝鐒跺悗浠庣嚎紼嬪伐鍘傞噷鍒涘緩涓涓柊鐨勭嚎紼嬶紝鎶婁換鍔′綔涓鴻綰跨▼鐨則arget錛屾妸綰跨▼浜ょ粰宸ヤ漢錛屾妸宸ヤ漢鍔犲叆宸ヤ漢闆嗗悎銆傝浠誨姟闅忓嵆琚墽琛屻?br />
2.濡傛灉浠誨姟鏉ヤ復(fù)鏃訛紝褰撳墠宸ヤ漢鏁伴噺poolSize宸茬粡澶т簬鏈灝忛泧浣f暟閲忥紝琛ㄦ槑宸ヤ漢宸茬粡闆囦劍鐨勫樊涓嶅浜嗭紝鍏堣浠誨姟絳夊緟鍚с?br />
綰跨▼姹犲皾璇曟妸浠誨姟鍔犲叆浠誨姟鍒楄〃錛屽鏋滄垚鍔燂紝浠誨姟鎻愪氦鐨勬楠ゅ氨緇撴潫浜嗐?br />
2.5.浠誨姟鍒楄〃鏄茍鍙戦樆濉為槦鍒楋紝宸ヤ漢浼氫笉鏂湴灝濊瘯浠庨槦鍒楅噷鑾峰彇浠誨姟錛屽鏋滆幏鍙栧埌浠誨姟(璇風(fēng)湅5)錛屽伐浜哄氨鎶婁換鍔℃嬁鍘繪墽琛屻傝繖鏄換鍔$殑鎵ц姝ラ銆?br />
3.濡傛灉鍔犲叆闃熷垪澶辮觸錛岃鏄庝換鍔″垪琛ㄥ凡緇忔弧浜嗭紝涓嶈兘鍐嶅線閲屽浠誨姟浜嗐?br />
榪欐椂錛岀嚎紼嬫睜鍒ゆ柇宸ヤ漢鏁伴噺鏄惁杈懼埌鏈澶氬伐浜烘暟閲忋?br />
濡傛灉榪樻病鏈夛紝鍒欏喅瀹氬啀闆囦劍涓涓伐浜?榪欏拰寮濮嬮泧浣e伐浜虹殑姝ラ娌℃湁涓ゆ牱)銆?br />
4.濡傛灉宸茬粡杈懼埌闆囦劍涓婄嚎錛岀嚎紼嬫睜娌℃湁鍔炴硶浜嗭紝鍙ソ鎷掔粷璇ヤ換鍔°?br />
鎷掔粷鐨勬柟寮忔湁錛?br />
1銆佹姏鍑哄紓甯哥粰浠誨姟閫掗佽咃紝鍛婅瘔浠?#8220;鑰佸瓙绱眮浜嗭紝鑰佸瓙鐪熺殑涓嶅共浜?#8221;銆?--榪欏お綺楁毚浜嗐傜嚎紼嬫睜榛樿灝辮繖涔堝共錛?br />
2銆佸伔钄効鍦頒涪寮冭繖涓換鍔°?--榪欏お鐚ョ悙浜嗐?br />
3銆佷粠浠誨姟鍒楄〃閲屼涪寮冧竴涓渶榪戠殑浠誨姟錛岀劧鍚庢妸榪欎釜浠誨姟鏀鵑噷銆?-榪欏お鍔垮埄鐪間簡銆?br />
4銆佽繕緇欎換鍔¢掗佽咃紝璁╀粬鑷繁騫層?-榪欏お鏃犺諱簡銆?br />
5.綰跨▼姹犺宸ヤ漢絳夊緟浠誨姟鐨勭瓥鐣ュ垎涓ょ(鏈枃涓嶈冭檻鐢熷懡鍛ㄦ湡鍜岀姸鎬?錛?br />
姝葷瓑錛佸綋宸ヤ漢鏁伴噺灝戜簬鎴栬呯瓑浜庢渶浣庨泧浣f暟閲忔椂錛屽畠浠病鍟ヤ換鍔″共浜嗭紝灝卞繀欏繪絳夈?br />
濡傛灉鍦ㄧ粰瀹氭椂闂村唴錛屾病鏈変換鍔℃潵鍒幫紝綰跨▼姹犲紑濮嬫暟浜哄ご錛屽鏋滀笉澶氫簬鏈浣庨泧浣f暟閲忥紝榪欎釜宸ヤ漢榪樺緱閲嶆柊絳変竴涓粰瀹氭椂闂撮偅涔堥暱銆?br />
6.鍚﹀垯錛岀嚎紼嬫睜鎶婅宸ヤ漢鐨勭嚎紼嬬粨鏉燂紝鍛婅瘔褰撳墠絳夊緟鐨勫伐浜猴紝浣犳病鏈変換鍔′簡銆備笉瑕佸啀絳変簡銆?br />
7.娌℃湁鎷垮埌浠誨姟鐨勫伐浜猴紝琚竻闄ゅ嚭宸ヤ漢闆嗗悎--璇ュ伐浜烘寮忎笅宀椼?br />
feuyeux@gmail.com
]]>
主站蜘蛛池模板:
全部在线播放免费毛片 |
一二三区免费视频 |
一个人免费观看日本www视频 |
黄色网址在线免费 |
卡1卡2卡3卡4卡5免费视频 |
国产亚洲精品免费视频播放 |
亚洲一区在线视频观看 |
四虎永久在线精品免费一区二区 |
久久A级毛片免费观看 |
国产精品美女自在线观看免费 |
亚洲av无码一区二区乱子伦as |
亚洲国产精品美女久久久久 |
免费人成毛片动漫在线播放 |
国产乱子伦精品免费女 |
亚洲色图黄色小说 |
一区视频免费观看 |
四虎永久在线精品免费网址 |
亚洲av无码片在线播放 |
日本亚洲欧美色视频在线播放
|
亚洲深深色噜噜狠狠网站 |
中文在线免费看视频 |
免费看的成人yellow视频 |
久久99国产亚洲精品观看 |
国产亚洲精品91 |
国产免费不卡v片在线观看 |
亚洲国产另类久久久精品黑人 |
亚洲国产日韩a在线播放 |
97av免费视频 |
国产亚洲欧洲精品 |
黄色毛片视频免费 |
最近最新中文字幕完整版免费高清
|
精品丝袜国产自在线拍亚洲 |
免费萌白酱国产一区二区三区
|
久久久久噜噜噜亚洲熟女综合
|
少妇亚洲免费精品 |
女人被男人桶得好爽免费视频
|
白白国产永久免费视频 |
亚洲xxxxxx |
精品熟女少妇a∨免费久久 |
亚洲精品国精品久久99热一 |
日韩精品免费一线在线观看 |