锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲国产欧洲精品一,久久精品九九亚洲精品,中文字幕精品亚洲无线码一区应用http://www.tkk7.com/yangyi/鑷己涓嶆伅zh-cnFri, 09 May 2025 19:35:58 GMTFri, 09 May 2025 19:35:58 GMT60嫻呰皥Java涓殑鍚屾鐨勬柟娉曞拰鍘熺悊http://www.tkk7.com/yangyi/archive/2010/07/09/325679.html鏉ㄤ竴鏉ㄤ竴Fri, 09 Jul 2010 11:49:00 GMThttp://www.tkk7.com/yangyi/archive/2010/07/09/325679.htmlhttp://www.tkk7.com/yangyi/comments/325679.htmlhttp://www.tkk7.com/yangyi/archive/2010/07/09/325679.html#Feedback0http://www.tkk7.com/yangyi/comments/commentRss/325679.htmlhttp://www.tkk7.com/yangyi/services/trackbacks/325679.htmlJava鐨勫唴瀛樻ā鍨嬩腑Thread浼氶檮鏈夎嚜宸辯殑鍫嗘爤錛屽瘎瀛樺櫒錛屽繀瑕佹椂闇瑕佸拰涓誨瓨鍗砲eap涔嬮棿鍚屾銆?br /> 鍙互浣跨敤Synchornized鍏抽敭瀛楀拰Concurrent鍖呬腑鐨凩ock鍙互淇濊瘉綰跨▼浜掓枼鍜屽彲瑙佹с?/font>

浜掓枼鎬т綋鐜板湪綾婚攣鎴栬呭璞¢攣涓婏紝姣忎釜瀵硅薄鑷韓閮藉寘鍚竴涓洃瑙嗗櫒錛岃鐩戣鍣ㄦ槸涓涓瘡嬈″彧鑳借涓涓嚎紼嬫墍鑾峰彇榪涘叆鐨勪復鐣屽尯錛屽彲浠ラ氳繃wait鍜宯otify鏉ラ鍑哄拰鍑嗗叆涓寸晫鍖恒傚彲浠?/font>鐪嬪嚭榪欐槸涓涓敓浜ц?娑堣垂鑰呯殑妯″瀷銆傝孋oncurrent鍖呬腑鐨凩ock涓轟簡鑳藉鑾峰緱鏇村ソ鐨勬ц兘鍜屾洿濂界殑鎵╁睍鎬э紝浠ュ強涓嶄緷璧栦簬鍏抽敭瀛楃殑鍙浠g爜錛岃嚜宸卞疄鐜頒簡榪欐牱涓涓敓浜ф秷璐歸槦鍒楋紝涔?/font>灝辨槸AbstractQueuedSynchronizer錛岃縐頒負AQS鐨勬満鍒躲傛瘡涓狶ock閮藉唴緗簡涓涓狝bstractQueuedSynchronizer銆傞渶瑕佽鏄庣殑鏄疉bstractQueuedSynchronizer鍐呴儴瀹炵幇閲囩敤浜咰AS鏈哄埗錛岄氳繃getState, setState, compareAndSetState璁塊棶鎺у埗涓涓?2bit int鐨勫艦寮忚繘琛屼簰鏂ャ?/font>

閭d箞鍙鎬ф槸濡備綍淇濊瘉鐨勫憿錛?/font>

瀵逛簬鍏抽敭瀛楃殑鍚屾鏈哄埗錛屽叾瀹炲彲瑙佹у氨鏄嚎紼嬪拰涓誨瓨涔嬮棿鐨勫悓姝ユ椂鏈洪棶棰樸傚叡鏈?涓椂闂寸偣闇瑕佹敞鎰忥細
1 鑾峰彇鎴栭噴鏀劇被閿?瀵硅薄閿佺殑鏃跺欍俆hread淇濊瘉reload/flush鍏ㄩ儴鍙樻洿
2 volatile灝辨槸flush on write鎴栬卹eload on read
3 褰撶嚎紼嬮嬈¤闂叡浜彉閲忔椂錛屽彲浠ュ緱鍒版渶鏂扮殑緇撴灉銆?br /> 棰樺錛氭墍浠ュ湪鏋勯犳柟娉曚腑鍏竷this鏃跺緢鍗遍櫓鐨勩傜畝鍗曠殑璇達紝灝辨槸鏋勯犳椂涓嶉冭劚浠諱綍鍙橀噺錛屼笉寮鍚柊鐨勭嚎紼嬶紝鍙仛灝佽銆傚叧浜庡畨鍏ㄦ瀯閫狅紝璇峰弬鑰?br /> http://www.ibm.com/developerworks/cn/java/j-jtp0618/#resources
4 綰跨▼緇撴潫鏃訛紝鎵鏈夊彉鏇翠細鍐欏洖涓誨瓨

鍏充簬Concurrent Lock濡備綍瀹炵幇鍙鎬х殑闂錛孌oug Lea澶т緺錛屽彧鍦ㄤ粬鐨勮鏂囦腑鎻愬埌錛屾寜鐓SR133錛孶nsafe鍦╣etState, setState, compareAndSetState鏃朵繚璇佷簡綰跨▼鐨勫彉閲忕殑鍙鎬э紝涓嶉渶瑕侀澶栫殑volatile鏀寔錛岃嚦浜庡叿浣撹繖浜沶ative鍋氫簡鍝簺magic灝變笉寰楄岀煡浜嗭紝鎬諱箣錛屾渶鍚庣殑contract灝辨槸淇濊瘉lock鍖洪棿鐨勫叡浜彉閲忓彲瑙佹с傚紑鍙戝洟闃熻閫兼ヤ簡灝辮繖鏍峰洖絳旓細
There seems to be a real reluctance to explain the dirty details. I think the question was definitely understood on the concurrent interest thread, and the answer is that synchronized and concurrent locking are intended to be interchangable in terms of memory semantics when implemented correctly. The answer to matfud's question seems to be "trust us.”

涓嶈繃榪欎釜鍦版柟鐨勭‘鏄紑鍙戝洟闃熺粰鎴戜滑鐢ㄦ埛榪鋒儜鐨勫湴鏂癸紝鍦ㄥ悓鏍峰簲鐢ㄤ簡CAS鏈哄埗鐨凙tomic綾諱腑錛岄兘鍐呭祵浜唙olatile鍙橀噺錛屼絾鏄啀lock鍧椾腑錛屼粬鍛婅瘔鎴戜滑鍙互淇濊瘉鍙鎬с?/font>

鎰熷叴瓚g殑鍚屽鍙互涓嬮潰鐨勪袱涓猼hread鍜孌oug Lea鐨則hesis錛?br /> http://altair.cs.oswego.edu/pipermail/concurrency-interest/2005-June/001587.html
http://forums.sun.com/thread.jspa?threadID=631014&start=15&tstart=0
http://gee.cs.oswego.edu/dl/papers/aqs.pdf



鏉ㄤ竴 2010-07-09 19:49 鍙戣〃璇勮
]]>
commons-net FTPClient API瀛樺彇璁捐http://www.tkk7.com/yangyi/archive/2010/07/07/325504.html鏉ㄤ竴鏉ㄤ竴Wed, 07 Jul 2010 15:08:00 GMThttp://www.tkk7.com/yangyi/archive/2010/07/07/325504.htmlhttp://www.tkk7.com/yangyi/comments/325504.htmlhttp://www.tkk7.com/yangyi/archive/2010/07/07/325504.html#Feedback1http://www.tkk7.com/yangyi/comments/commentRss/325504.htmlhttp://www.tkk7.com/yangyi/services/trackbacks/325504.html

鏂囦歡緋葷粺鏃犻潪灝辨槸鏂囦歡鐨勫瓨鍙栧拰緇勭粐緇撴瀯銆?br /> 璁塊棶涓涓枃浠剁郴緇熺殑API涔熷簲璇ユ槸鍐欙紝璇伙紝瀹氫綅鏂規硶錛圥athname?/URI?錛?/p>

FTPClient閽堝鏂囦歡鐨勪繚瀛樺拰鑾峰彇鍚勬彁渚涗簡涓や釜鏂規硶錛屽垎鍒槸錛?br />

public boolean storeFile(String remote, InputStream local)
public OutputStream storeFileStream(String remote)

public boolean retrieveFile(String remote, OutputStream local)
public InputStream retrieveFileStream(String remote)

 

涓や釜鏂規硶璨屼技鐩稿悓錛屽疄闄呬笉鍚岋紝榪斿洖嫻佺殑閭d釜鍥犱負涓嶈兘椹笂澶勭悊嫻侊紝鎵浠ラ渶瑕佺敤鎴鋒墜宸ヨ皟鐢╟ompletePendingCommand錛岃屽彟涓涓紶閫掓祦榪涘幓鐨勫垯涓嶉渶瑕併傚彲鑳芥湁鍚屽宸茬粡閬囧埌榪囪繖涓棶棰樹簡錛岃鍐欑涓涓枃浠舵椂鎬繪槸姝g‘鐨勶紝褰撶浉鍚孉PI璇誨啓絎簩涓枃浠舵椂錛宐lock浣忎簡銆傝繖鏄洜涓篎TPClient瑕佹眰鍦ㄨ繘琛屾祦鎿嶄綔涔嬪悗鎵цcompletePendingCommand錛屼互紜繚嫻佸鐞嗗畬姣曪紝鍥犱負嫻佸鐞嗕笉鏄嵆鏃剁殑錛屾墍浠ヤ篃娌℃湁鍔炴硶涓嶆墜宸ヨ皟鐢╟ompletePendingCommand銆傞棶棰樻槸寮鍙戣呮妸涓嶈繑鍥炴祦鐨勬柟娉曟湯灝懼姞涓婁簡completePendingCommand錛屽鏋滀笉鐪嬩唬鐮佸彲鑳芥牴鏈笉鐭ラ亾銆?br /> 鏂囨。涓婅錛?br />

     * There are a few FTPClient methods that do not complete the
     
* entire sequence of FTP commands to complete a transaction.  These
     
* commands require some action by the programmer after the reception
     
* of a positive intermediate command.  After the programmer's code
     * completes its actions, it must call this method to receive
     
* the completion reply from the server and verify the success of the
     
* entire transaction.


浣嗘槸榪欐牱浠嶇劧榪樻槸璁╀漢鏈夌偣鍥版儜錛屼負浠涔堥兘鏄瓨鍌?璇誨彇鐨勬柟娉曪紝鏈夋椂鍊欒璋冪敤completePendingCommand錛屾湁鏃跺欎笉璋冪敤錛熸洿涓ラ噸鐨勯棶棰樻槸completePendingCommand璋冪敤浜唃etReply錛屽鏋滀竴涓懡浠ら氳繃socket stream浼犱簡榪囧幓浣嗘槸娌℃湁getReply錛屽嵆娌℃湁completePendingCommand錛岄偅涔堜笅嬈″彂鍛戒護鏃訛紝灝嗕細鍙楀埌鏈榪斿洖鐮佺殑騫叉壈錛屽緱鍒版棤鏁堢殑鍝嶅簲銆傝屽鏋滃湪completePendingCommand涔嬪悗鍙堣繘琛屼簡涓嬈℃棤杈滅殑completePendingCommand錛岄偅涔堝洜涓篎TP Server涓婃病鏈塕eply浜嗭紝灝變細block銆傛墍浠ompletePendingCommand騫朵笉鏄彲浠ラ殢鎰忔坊鍔犵殑銆?/p>

鐜板湪鍑虹幇浜嗕袱涓棶棰橈細
1 completePendingCommand寰堝鏄撳鍑烘潵鎴栭仐婕?br /> 2 鏄懼紡璋冪敤completePendingCommand鏆撮湶浜嗗簳灞傚疄鐜幫紝緇欑敤鎴峰甫鏉ヤ笉渚匡紝鐢ㄦ埛鍙兂瑕両nputStream鎴栬匫utputStream

涓轟簡瑙e喅榪欎釜闂錛屽彲浠ュInputStream榪涜鎵╁睍錛屽緩绔嬩竴涓猂eplyOnCloseInputStream錛屽涓嬶細

private static ReplyOnCloseInputStream extends InputStream{
  
//
  public ReplyOnCloseInputStream(InputStream is, FTPClient c){
    
//
  }

  
//
  @override
  
public void close(){
    
if(c.completePendingCommand){
      is.close();
    }
else{
      
//throw Exception
    }

  }

}
 
//
return new ReplyOnCloseInputStream(is, client);


榪欐牱灝佽涔嬪悗錛孎TPClient鐨勭敤鎴峰彧闇瑕佹甯稿湪澶勭悊瀹屾祦涔嬪悗鍏抽棴鍗沖彲錛岃屼笉蹇呮毚闇插疄鐜扮粏鑺傘備繚瀛樻枃浠朵篃鍙互鐢ㄧ浉鍚岀殑鏂規硶灝佽OutputStream銆?/p>

鏉ㄤ竴 2010-07-07 23:08 鍙戣〃璇勮
]]>
鍏充簬ThreadLocal鐨勫唴瀛樻硠闇?/title><link>http://www.tkk7.com/yangyi/archive/2010/07/02/325100.html</link><dc:creator>鏉ㄤ竴</dc:creator><author>鏉ㄤ竴</author><pubDate>Fri, 02 Jul 2010 10:27:00 GMT</pubDate><guid>http://www.tkk7.com/yangyi/archive/2010/07/02/325100.html</guid><wfw:comment>http://www.tkk7.com/yangyi/comments/325100.html</wfw:comment><comments>http://www.tkk7.com/yangyi/archive/2010/07/02/325100.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/yangyi/comments/commentRss/325100.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yangyi/services/trackbacks/325100.html</trackback:ping><description><![CDATA[ThreadLocal鏄竴縐峜onfinement錛宑onfinement鍜宭ocal鍙奿mmutable閮芥槸綰跨▼瀹夊叏鐨勶紙濡傛灉JVM鍙俊鐨勮瘽錛夈傚洜涓哄姣忎釜綰跨▼鍜寁alue涔嬮棿瀛樺湪hash琛紝鑰岀嚎紼嬫暟閲忔湭鐭ワ紝浠庤〃璞℃潵鐪婽hreadLocal浼氬瓨鍦ㄥ唴瀛樻硠闇詫紝璇諱簡浠g爜錛屽彂鐜板疄闄呬笂涔熷彲鑳戒細鍐呭瓨娉勯湶銆?br /> <br /> 浜嬪疄涓婃瘡涓猅hread瀹炰緥閮藉叿澶囦竴涓猅hreadLocal鐨刴ap錛屼互ThreadLocal Instance涓簁ey錛屼互緇戝畾鐨凮bject涓篤alue銆傝岃繖涓猰ap涓嶆槸鏅氱殑map錛屽畠鏄湪ThreadLocal涓畾涔夌殑錛屽畠鍜屾櫘閫歮ap鐨勬渶澶у尯鍒氨鏄畠鐨凟ntry鏄拡瀵筎hreadLocal寮卞紩鐢ㄧ殑錛屽嵆褰撳閮═hreadLocal寮曠敤涓虹┖鏃訛紝map灝卞彲浠ユ妸ThreadLocal浜ょ粰GC鍥炴敹錛屼粠鑰屽緱鍒頒竴涓猲ull鐨刱ey銆?br /> <br /> 榪欎釜threadlocal鍐呴儴鐨刴ap鍦═hread瀹炰緥鍐呴儴緇存姢浜員hreadLocal Instance鍜宐ind value涔嬮棿鐨勫叧緋伙紝榪欎釜map鏈塼hreshold錛屽綋瓚呰繃threshold鏃訛紝map浼氶鍏堟鏌ュ唴閮ㄧ殑ThreadLocal錛堝墠鏂囪榪囷紝map鏄急寮曠敤鍙互閲婃斁錛夋槸鍚︿負null錛屽鏋滃瓨鍦╪ull錛岄偅涔堥噴鏀懼紩鐢ㄧ粰gc錛岃繖鏍蜂繚鐣欎簡浣嶇疆緇欐柊鐨勭嚎紼嬨傚鏋滀笉瀛樺湪slate threadlocal錛岄偅涔坉ouble threshold銆傞櫎姝や箣澶栵紝榪樻湁涓や釜鏈轟細閲婃斁鎺夊凡緇忓簾寮冪殑threadlocal鍗犵敤鐨勫唴瀛橈紝涓鏄綋hash綆楁硶寰楀埌鐨則able index鍒氬ソ鏄竴涓猲ull key鐨則hreadlocal鏃訛紝鐩存帴鐢ㄦ柊鐨則hreadlocal鏇挎崲鎺夊凡緇忓簾寮冪殑銆傚彟澶栨瘡嬈″湪map涓柊寤轟竴涓猠ntry鏃訛紙鍗蟲病鏈夊拰鐢ㄨ繃鐨勬垨鏈竻鐞嗙殑entry鍛戒腑鏃訛級錛屼細璋冪敤cleanSomeSlots鏉ラ亶鍘嗘竻鐞嗙┖闂淬傛澶栵紝褰揟hread鏈韓閿姣佹椂錛岃繖涓猰ap涔熶竴瀹氳閿姣佷簡錛坢ap鍦═hread涔嬪唴錛夛紝榪欐牱鍐呴儴鎵鏈夌粦瀹氬埌璇ョ嚎紼嬬殑ThreadLocal鐨凮bject Value鍥犱負娌℃湁寮曠敤緇х畫淇濇寔錛屾墍浠ヨ閿姣併?br /> <br /> 浠庝笂鍙互鐪嬪嚭Java宸茬粡鍏呭垎鑰冭檻浜嗘椂闂村拰絀洪棿鐨勬潈琛★紝浣嗘槸鍥犱負緗負null鐨則hreadlocal瀵瑰簲鐨凮bject Value鏃犳硶鍙婃椂鍥炴敹銆俶ap鍙湁鍒拌揪threshold鏃舵垨娣誨姞entry鏃舵墠鍋氭鏌ワ紝涓嶄技gc鏄畾鏃舵鏌ワ紝涓嶈繃鎴戜滑鍙互鎵嬪伐杞媯鏌ワ紝鏄懼紡璋冪敤map鐨剅emove鏂規硶錛屽強鏃剁殑娓呯悊搴熷純鐨則hreadlocal鍐呭瓨銆傞渶瑕佽鏄庣殑鏄紝鍙涓嶅線涓嶇敤鐨則hreadlocal涓斁鍏ュぇ閲忔暟鎹紝闂涓嶅ぇ錛屾瘯绔熻繕鏈夊洖鏀剁殑鏈哄埗銆?br /> <br /> 緇間笂錛屽簾寮僼hreadlocal鍗犵敤鐨勫唴瀛樹細鍦?涓儏鍐典笅娓呯悊錛?br /> 1 thread緇撴潫錛岄偅涔堜笌涔嬬浉鍏崇殑threadlocal value浼氳娓呯悊<br /> 2 GC鍚庯紝thread.threadlocals(map) threshold瓚呰繃鏈澶у兼椂錛屼細娓呯悊<br /> 3 GC鍚庯紝thread.threadlocals(map) 娣誨姞鏂扮殑Entry鏃訛紝hash綆楁硶娌℃湁鍛戒腑鏃㈡湁Entry鏃訛紝浼氭竻鐞?br /> <br /> 閭d箞浣曟椂浼?#8220;鍐呭瓨娉勯湶”?褰揟hread闀挎椂闂翠笉緇撴潫錛屽瓨鍦ㄥぇ閲忓簾寮冪殑ThreadLocal錛岃屽張涓嶅啀娣誨姞鏂扮殑ThreadLocal錛堟垨鏂版坊鍔犵殑ThreadLocal鎭板ソ鍜屼竴涓簾寮僒hreadLocal鍦╩ap涓懡涓級鏃躲? <img src ="http://www.tkk7.com/yangyi/aggbug/325100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yangyi/" target="_blank">鏉ㄤ竴</a> 2010-07-02 18:27 <a href="http://www.tkk7.com/yangyi/archive/2010/07/02/325100.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍏充簬杞歡鏂囨。錛屾垜鐨勭湅娉?/title><link>http://www.tkk7.com/yangyi/archive/2010/06/29/324813.html</link><dc:creator>鏉ㄤ竴</dc:creator><author>鏉ㄤ竴</author><pubDate>Tue, 29 Jun 2010 10:26:00 GMT</pubDate><guid>http://www.tkk7.com/yangyi/archive/2010/06/29/324813.html</guid><wfw:comment>http://www.tkk7.com/yangyi/comments/324813.html</wfw:comment><comments>http://www.tkk7.com/yangyi/archive/2010/06/29/324813.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yangyi/comments/commentRss/324813.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yangyi/services/trackbacks/324813.html</trackback:ping><description><![CDATA[<font style="background-color: #f2f2f2">鏂囨。搴旇鍖呮嫭涓ゅぇ閮ㄥ垎錛屼竴閮ㄥ垎鏄竻鏅扮殑浠g爜緇撴瀯鍜屾敞閲婏紝姣斿Concurrent API灝辨槸榪欐牱錛岃繕鏈変竴閮ㄥ垎鏄枃瀛楁枃妗o紝鍖呮嫭涓変釜灝忛儴鍒嗭細涓鏄紑鍙戞枃妗o紝搴旇璁叉灦鏋勫拰鍔熻兘錛涗簩鏄儲寮曟枃妗o紝璇︾粏浠嬬粛鍔熻兘鍜屽弬鏁幫紝涓夋槸鐢ㄦ埛鏂囨。錛屽寘鎷畨瑁呭拰浣跨敤璇存槑<br /> <br /> 鏂囨。鏈鍥伴毦鐨勮帿榪囦簬鐗堟湰鐨勪竴鑷存э紝褰撹蔣浠跺崌綰у悗錛屼竴浜沷bsolete鐨勫唴瀹瑰拰鏂扮殑feature寰堥毦鍚屾銆傝鏄灦鏋勫彂鐢熶簡鍙樺寲錛岄偅灝辨洿鍥伴毦浜嗐備竴鑸琩ocument team閮戒笉鏄お綺句簬鎶鏈紝鎵浠ヤ篃浼氫駭鐢熶竴浜涢棶棰樸?br /> <br /> 鍙兘璇翠換浣曚簨鐗╂案榪滈兘鏈夋敼榪涚殑絀洪棿錛屼絾鏄悓鏍蜂篃姘歌繙娌℃湁杈懼埌瀹岀編鐨勭▼搴?/font> <img src ="http://www.tkk7.com/yangyi/aggbug/324813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yangyi/" target="_blank">鏉ㄤ竴</a> 2010-06-29 18:26 <a href="http://www.tkk7.com/yangyi/archive/2010/06/29/324813.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>NIO瀛︿範涔媁eb鏈嶅姟鍣ㄧず渚?/title><link>http://www.tkk7.com/yangyi/archive/2010/06/25/324501.html</link><dc:creator>鏉ㄤ竴</dc:creator><author>鏉ㄤ竴</author><pubDate>Fri, 25 Jun 2010 11:19:00 GMT</pubDate><guid>http://www.tkk7.com/yangyi/archive/2010/06/25/324501.html</guid><wfw:comment>http://www.tkk7.com/yangyi/comments/324501.html</wfw:comment><comments>http://www.tkk7.com/yangyi/archive/2010/06/25/324501.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yangyi/comments/commentRss/324501.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yangyi/services/trackbacks/324501.html</trackback:ping><description><![CDATA[     鎽樿: 1 鏍規嵁cpu core鏁伴噺紜畾selector鏁伴噺 2 鐢ㄤ竴涓猻elector鏈嶅姟accept錛屽叾浠杝elector鎸夌収core-1鍒嗛厤綰跨▼鏁拌繍琛? 3 accept selector浣滀負鐢熶駭鑰呮妸鑾峰緱鐨勮姹傛斁鍏ラ槦鍒? 4 鏌愪釜selector浣滀負娑堣垂鑰呬粠blocking queue涓彇鍑鴻姹俿ocket channel錛屽茍鍚戣嚜宸辨敞鍐? 5 褰撹幏寰梤ead淇″彿鏃訛紝selector寤虹珛宸ヤ綔...  <a href='http://www.tkk7.com/yangyi/archive/2010/06/25/324501.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/yangyi/aggbug/324501.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yangyi/" target="_blank">鏉ㄤ竴</a> 2010-06-25 19:19 <a href="http://www.tkk7.com/yangyi/archive/2010/06/25/324501.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>澶氱嚎紼嬬殑鐭ヨ瘑http://www.tkk7.com/yangyi/archive/2010/06/25/324500.html鏉ㄤ竴鏉ㄤ竴Fri, 25 Jun 2010 11:17:00 GMThttp://www.tkk7.com/yangyi/archive/2010/06/25/324500.htmlhttp://www.tkk7.com/yangyi/comments/324500.htmlhttp://www.tkk7.com/yangyi/archive/2010/06/25/324500.html#Feedback0http://www.tkk7.com/yangyi/comments/commentRss/324500.htmlhttp://www.tkk7.com/yangyi/services/trackbacks/324500.html澶氱嚎紼嬬殑浼樼偣錛?/strong>
1 澶氭牳鍒╃敤
2 涓哄崟涓換鍔″緩妯℃柟渚?
3 寮傛澶勭悊涓嶅悓浜嬩歡錛屼笉蹇呯洸絳?
4 鐜頒唬鐨刄I涔熼渶瑕佸畠
椋庨櫓錛?/strong>
1 鍚屾鍙橀噺鏄撻敊璇?
2 鍥犺祫婧愰檺鍒跺鑷寸嚎紼嬫椿璺冩ч棶棰?
3 鍥?瀵艱嚧鐨勬ц兘闂
鐢ㄩ旓細
妗嗘灦錛孶I錛孊ackend
綰跨▼瀹夊叏鐨勬湰璐ㄦ槸浠涔堬細
騫墮潪鏄嚎紼嬪拰閿侊紝榪欎簺鍙槸鍩虹緇撴瀯錛屾湰璐ㄦ槸濡備綍鎺у埗鍏變韓鍙橀噺璁塊棶鐨勭姸鎬?
浠涔堟槸綰跨▼瀹夊叏錛?/strong>
灝辨槸綰跨▼涔嬮棿鐨勬墽琛?strong>榪樻病鏈?/strong>鍙戠敓閿欒錛屽氨鏄病鏈夊彂鐢熸剰澶?
涓涓嚎紼嬪畨鍏ㄧ殑綾繪湰韜皝瑁呬簡瀵圭被鍐呴儴鏂規硶鍜屽彉閲忕殑寮傛璇鋒眰錛岃皟鐢ㄦ柟鏃犻渶鑰冭檻綰跨▼瀹夊叏闂
鏃犵姸鎬佺殑鍙橀噺鎬繪槸綰跨▼瀹夊叏鐨?
鍘熷瓙鎬э細
瀹屾暣鎵ц鐨勫崟鍏冿紝濡備笉鍔犻攣鎺у埗錛屽垯浼氬彂鐢熺珵鎬佹潯浠訛紝濡備笉鍔犻攣鐨勬噿姹夊崟渚嬫ā寮忥紝鎴栬呭鍚堟搷浣溿?
閿侊紝鍐呭湪閿侊紝閲嶅叆錛?/strong>
鍒╃敤synchronized鍏抽敭瀛楁帶鍒惰闂崟鍏冿紝鍚屼竴綰跨▼鍙互閲嶅叆閿佸唴閮紝閬垮厤浜嗛潰鍚戝璞′駭鐢熺殑闂銆傚悓涓鍙橀噺鐨勬墍鏈夊嚭鐜板満鍚堝簲璇ヤ嬌鐢ㄥ悓涓涓攣鏉ユ帶鍒躲俿ynchronized(lock)銆?
鍗充嬌鎵鏈夋柟娉曢兘鐢╯ynchronized鎺у埗涔熶笉鑳戒繚璇佺嚎紼嬪畨鍏紝瀹冨彲鑳藉湪璋冪敤鏃剁紪紼嬪鍚堟搷浣溿?
媧昏穬鎬у拰鎬ц兘闂錛?/strong>
榪囧ぇ鐨勭矑搴︿細瀵艱嚧榪欎釜闂錛岀敤閿佽繘琛屽紓姝ユ帶鍒訛紝瀵艱嚧浜嗙嚎紼嬬殑欏哄簭鎵ц銆?
綆鍗曞拰鎬ц兘鏄竴瀵圭煕鐩撅紝闇瑕侀傚綋鐨勫彇鑸嶃備笉鑳藉湪娌℃湁鑰冭檻鎴愮啛鐨勬儏鍐典笅錛屼負浜嗘ц兘鍘葷壓鐗茬畝媧佹с?
瑕佸敖閲忛伩鍏嶈楁椂鎿嶄綔錛孖O鍜岀綉緇滄搷浣滀腑浣跨敤閿?

鏉ㄤ竴 2010-06-25 19:17 鍙戣〃璇勮
]]>
Ext Store Filter鐨勫疄鐜板拰闂http://www.tkk7.com/yangyi/archive/2010/06/25/324499.html鏉ㄤ竴鏉ㄤ竴Fri, 25 Jun 2010 11:16:00 GMThttp://www.tkk7.com/yangyi/archive/2010/06/25/324499.htmlhttp://www.tkk7.com/yangyi/comments/324499.htmlhttp://www.tkk7.com/yangyi/archive/2010/06/25/324499.html#Feedback0http://www.tkk7.com/yangyi/comments/commentRss/324499.htmlhttp://www.tkk7.com/yangyi/services/trackbacks/324499.html 鐩稿簲鍦幫紝褰撹繘琛宻tore鐨勫鍒犳敼鏃訛紝瑕佸悓鏃剁淮鎶や袱涓紦瀛樸?
闂
Store鍖呭惈涓や釜澧炲姞Record鐨勬柟娉曪紝鍗砳nsert鍜宎dd錛屽叾涓殑insert娌℃湁鏇存柊snapshot鎵浠ュ綋閲嶆柊搴旂敤filter鏃訛紝鍗砫ata琚噸鏂板畾涔夋椂錛屽湪data涓嬌鐢╥nsert鏂板鐨勮褰曟槸鏃犳晥鐨勩?
瑙e喅鏂規硶
鐢╝dd涓嶈鐢╥nsert錛屽鏋滅敤insert錛岃寰楁妸鏁版嵁鍐欒繘snapshot: store.snapshot.addAll(records)

鏉ㄤ竴 2010-06-25 19:16 鍙戣〃璇勮
]]>
Ext涓瑿ombo緇勪歡鐨勮仈鍔ㄥ皝瑁?/title><link>http://www.tkk7.com/yangyi/archive/2010/06/25/324498.html</link><dc:creator>鏉ㄤ竴</dc:creator><author>鏉ㄤ竴</author><pubDate>Fri, 25 Jun 2010 11:14:00 GMT</pubDate><guid>http://www.tkk7.com/yangyi/archive/2010/06/25/324498.html</guid><wfw:comment>http://www.tkk7.com/yangyi/comments/324498.html</wfw:comment><comments>http://www.tkk7.com/yangyi/archive/2010/06/25/324498.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/yangyi/comments/commentRss/324498.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/yangyi/services/trackbacks/324498.html</trackback:ping><description><![CDATA[     鎽樿: 鍦‥xtjs涓瀯閫燦綰ц仈鍔ㄤ笅鎷夌殑楹葷儲涓嶅皯錛岄渶瀹氬埗涓嬫媺鏁版嵁騫惰瀹氬搷搴斾簨浠躲傞氳繃瀵笴ombo闆嗗悎鐨勫皝瑁咃紝鏃犻渶鑷繁閰嶇疆Combo錛屽彧闇璁懼畾鏁版嵁鍜屽叧鑱斿眰綰э紝鍗沖彲鑷姩鏋勯犲嚭涓緇勬敮鎸佹鍚戝拰閫嗗悜榪囨護鐨勮仈鍔ㄤ笅鎷夊茍鑾峰彇鍏朵腑鏌愪竴涓殑瀹炰緥銆? 濡傦細 鏁版嵁錛? Ext.test = {};       Ext.test.lcbdata&nb...  <a href='http://www.tkk7.com/yangyi/archive/2010/06/25/324498.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/yangyi/aggbug/324498.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/yangyi/" target="_blank">鏉ㄤ竴</a> 2010-06-25 19:14 <a href="http://www.tkk7.com/yangyi/archive/2010/06/25/324498.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍓嶇妗嗘灦鍔ㄦ佺粍浠跺拰浠g爜鐢熸垚涔嬮棿鐨勯夋嫨http://www.tkk7.com/yangyi/archive/2010/06/25/324497.html鏉ㄤ竴鏉ㄤ竴Fri, 25 Jun 2010 11:11:00 GMThttp://www.tkk7.com/yangyi/archive/2010/06/25/324497.htmlhttp://www.tkk7.com/yangyi/comments/324497.htmlhttp://www.tkk7.com/yangyi/archive/2010/06/25/324497.html#Feedback0http://www.tkk7.com/yangyi/comments/commentRss/324497.htmlhttp://www.tkk7.com/yangyi/services/trackbacks/324497.html鐩墠涓繪祦鐨凷SH寮鍙戞灦鏋勪腑錛屼負鍑忚交寮鍙戣呭伐浣滐紝渚夸簬綆$悊寮鍙戣繃紼嬶紝寰寰鐢ㄥ埌涓浜涘叕鍏變唬鐮佸拰緇勪歡錛屾垨鑰呴噰鐢ㄤ簡鍩轟簬妯$増鐨勪唬鐮佺敓鎴愭満鍒訛紝瀵逛簬鍚庡彴鐨凞AO錛孲ervice絳夊洜涓烘灦鏋勫喅瀹氾紝浠g爜鐢熸垚蹇呬笉鍙皯錛屼絾鏄湪鍓嶇欏甸潰鐨勫疄鐜頒笂錛屽嵈鍙互鏈変袱縐嶄笉鍚岀殑鎬濊礬錛屼竴縐嶆槸鎶婇厤緗俊鎭洿鎺ュ皝瑁呮垚鏇撮珮綰у埆鐨勭粍寤猴紝涓縐嶆槸榪涜浠g爜鐢熸垚銆傝澶у璁ㄨ涓涓嬭繖涓ょ鏂規鐨勪紭鍔o紝榪欓噷鍏堟姏鐮栧紩鐜変簡銆?

鐩稿悓鐐癸細
閰嶇疆淇℃伅錛歑ML OR 鏁版嵁搴?

鎺т歡鍖栵細
浼樼偣錛?
1 鏄撲簬娣誨姞鍏叡鍔熻兘
2 淇敼閰嶇疆鏁版嵁鐩存帴鐢熸晥
3 浠g爜緇撴瀯娓呮櫚錛屽寮鍙戣呭弸濂?
緙虹偣錛?
1 閲嶇粍鍐呭瓨涓璞$粨鏋勶紝鎬ц兘娌℃湁浠g爜鐢熸垚濂斤紙浣嗘覆鏌撴椂闂寸浉鍚岋級
2 浠呰兘鎺у埗緇勪歡鑷韓灝佽鐨勯厤緗紝涓嶆敮鎸佷釜鎬у寲淇敼錛屽鏋滈厤緗枃浠朵笉鏀寔鐨勫弬鏁幫紝鍒欐帶浠朵笉鏀寔
3 蹇呴』淇濊瘉姣忎釜鎺т歡涓涓厤緗?

浠g爜鐢熸垚錛?
浼樼偣錛?
1 鎬ц兘杈冨ソ
2 鏄撲簬瀹氬埗鍐呭
3 鍙互鍙厤緗竴涓ā鐗堬紝鐒跺悗鍋氬嚭澶氫釜綆鍗曠殑淇敼
緙虹偣錛?
1 涓嶈兘閽堝澶氫釜欏甸潰鍚屾椂娣誨姞鍏叡鍔熻兘
2 涓氬姟淇敼闇瑕侀噸鏂扮敓鎴愪唬鐮?
3 寮鍙戣呴渶瑕佷慨鏀硅嚜鍔ㄧ敓鎴愮殑浠g爜錛屽茍闇瑕佷簡瑙d竴浜涘簳灞傜殑瀹炵幇緇撴瀯

=====================20091029
浠g爜鐢熸垚騫朵笉鑳芥彁楂樺伐浣滄晥鐜囷紝灝ゅ叾鏄拡瀵瑰鏉傜殑瀵屽鎴風寮鍙?
寮鍙戠粍浠跺彲鎻愭彁渚涗竴縐嶆湁鏁堢殑閫夐」錛屼絾鏄湪榪愯鏁堢巼鍜屽唴瀛樺鐞嗕笂闇瑕佺粏蹇冨鐞?

鏉ㄤ竴 2010-06-25 19:11 鍙戣〃璇勮
]]>
Javascript宸ヤ綔嫻佸紩鎿庝唬鐮佸強瀹炰緥http://www.tkk7.com/yangyi/archive/2009/03/06/258280.html鏉ㄤ竴鏉ㄤ竴Fri, 06 Mar 2009 09:39:00 GMThttp://www.tkk7.com/yangyi/archive/2009/03/06/258280.htmlhttp://www.tkk7.com/yangyi/comments/258280.htmlhttp://www.tkk7.com/yangyi/archive/2009/03/06/258280.html#Feedback1http://www.tkk7.com/yangyi/comments/commentRss/258280.htmlhttp://www.tkk7.com/yangyi/services/trackbacks/258280.html鏈榪戝湪瀛︿範jBPM鍜?/span>Javascript錛屾墍浠ユ寜鐓т竴浜涚浉鍏蟲蹇佃嚜宸卞啓浜嗕笅闈㈢殑200琛屼唬鐮佺殑“宸ヤ綔嫻佸紩鎿?#8221;錛屽伐浣滄祦綆$悊緋葷粺鍖呭惈浜嗘祦紼嬪畾涔夛紝寮曟搸錛屽強搴旂敤緋葷粺涓変釜涓昏閮ㄥ垎錛屼笅闈㈢殑浠g爜瀹炵幇浜嗘祦紼嬬殑鍒嗘敮鍚堝茍錛岀洰鍓嶅彧鏀寔涓縐嶇幆鑺備笂鐨勮縼縐匯傛嫹璐濆埌html錛屽弻鍑誨氨鍙互璺戣搗鏉ャ?/span>

 

var workflowDef = {
         start:{
                   fn:
"begin"//瀵瑰簲澶勭悊鏂規硶鍙互鍦ㄥ唴閮ㄥ畾涔夛紝涔熷彲浠ュ湪澶栭儴瀹氫箟
                   next:[
"task1","task2"]
         },
         end:
"end",
         tasks:[{
                   id:
"task1",
                   fn:
function(){
                            alert(
"鎵ц浠誨姟涓");
                   },
                   before:
function(){
                            alert(
"鎵ц浠誨姟涓鍓?/span>");
                   },
                   after:
function(){
                            alert(
"鎵ц浠誨姟涓鍚?/span>");
                   },
                   next:[
"task4","task5"]
         },{
                   id:
"task2",
                   fn:
function(){
                            alert(
"鎵ц浠誨姟浜?/span>");
                   },
                   before:
function(){
                            alert(
"鎵ц浠誨姟浜屽墠");
                   },
                   after:
function(){
                            alert(
"鎵ц浠誨姟浜屽悗");
                   },
                   next:[
"task3"]
         },{
                   id:
"task3",
                   fn:
function(){
                            alert(
"鎵ц浠誨姟涓?/span>");
                   },
                   before:
function(){
                            alert(
"鎵ц浠誨姟涓夊墠");
                   },
                   after:
function(){
                            alert(
"鎵ц浠誨姟涓夊悗");
                   },
                   
//瀹氫箟鍚堝茍鐨勬暟閲?/span>
                   merge: 
3,
                   next:
"EOWF"
         },{
                   id:
"task4",
                   fn:
function(){
                            alert(
"鎵ц浠誨姟鍥?/span>");
                   },
                   before:
function(){
                            alert(
"鎵ц浠誨姟鍥涘墠");
                   },
                   after:
function(){
                            alert(
"鎵ц浠誨姟鍥涘悗");
                   },
                   next:[
"task3"]
         },{
                   id:
"task5",
                   fn:
function(){
                            alert(
"鎵ц浠誨姟浜?/span>");
                   },
                   before:
function(){
                            alert(
"鎵ц浠誨姟浜斿墠");
                   },
                   after:
function(){
                            alert(
"鎵ц浠誨姟浜斿悗");
                   },
                   next:[
"task3"]
         }]
}

 

 

//////////瀹氫箟寮曟搸////////////

Yi 
= {};
Yi.Utils 
= {};
Yi.Utils.execute 
= function(o){
         
if(typeof o != 'function')
                   eval(o)();
         
else
                   o();
}
//宸ヤ綔嫻佺被
Yi.Workflow 
= function(workflowDef){
         
this.def = workflowDef;
         
this.tasks = this.def.tasks;
}
//public鎸夌収鐜妭id鏌ユ壘鏌ユ壘
Yi.Workflow.prototype.findTask 
= function(taskId){
         
for(var i=0;i<this.tasks.length;i++){
                   
if(this.tasks[i].id == taskId)
                            
return this.tasks[i];
         }
}
//public鍚姩宸ヤ綔嫻?/span>
Yi.Workflow.prototype.start 
= function(){
         
this.currentTasks = [];
         Yi.Utils.execute(
this.def.start.fn);
         
for(var i=0;i<this.def.start.next.length;i++){
                   
this.currentTasks[i] = this.findTask(this.def.start.next[i]);
                   Yi.Utils.execute(
this.currentTasks[i].before);
         }
}
//private
Yi.Workflow.prototype.findCurrentTaskById 
= function(taskId){
         
for(var i=0;i<this.currentTasks.length;i++){
                   
if(this.currentTasks[i].id == taskId)
                            
return this.currentTasks[i];
         }
         
return null;
}
//private
Yi.Workflow.prototype.removeFromCurrentTasks 
= function(task){
         
var temp = [];
         
for(var i=0;i<this.currentTasks.length;i++){
                   
if(!(this.currentTasks[i] == task))
                            temp.push(
this.currentTasks[i]); 
         }
         
this.currentTasks = temp;
         temp 
= null;
}
//public瑙﹀彂褰撳墠鐜妭
Yi.Workflow.prototype.signal 
= function(taskId){
         
//鍙鐞嗗綋鍓嶆椿鍔ㄧ幆鑺?/span>
         
var task = this.findCurrentTaskById(taskId);
         
if(task == null){
                   alert(
"宸ヤ綔嫻佹湭嫻佽漿鍒版鐜妭!");
                   
return;
         }
         
//瀵逛簬鍚堝茍鐨勫鐞?/span>
         
if(task.merge != undefined){
                   
if(task.merge != 0){
                            alert(
"宸ヤ綔嫻佹祦杞潯浠朵笉鍏呭垎!");
                            
return;
                   }
else{
                            Yi.Utils.execute(task.before);
                   }        
         }
         
//瑙﹀彂褰撳墠鐜妭
         Yi.Utils.execute(task.fn);
         
//瑙﹀彂鍚庡姩浣?/span>
         Yi.Utils.execute(task.after);
         
//涓嬩竴姝ュ鏋滃伐浣滄祦緇撴潫
         
if(task.next === "EOWF"){
                   Yi.Utils.execute(
this.def.end);
                   
delete this.currentTasks;
                   
return;
         }
         
//閬嶅巻涓嬩竴姝ョ幆鑺?/span>
         
this.removeFromCurrentTasks(task);
         
for(var i=0;i<task.next.length;i++){
                   
var tempTask = this.findTask(task.next[i]);
                   
if(!tempTask.inCurrentTasks)
                            
this.currentTasks.push(tempTask);
                   
if(tempTask.merge != undefined){
                            tempTask.merge
--;
                            tempTask.inCurrentTasks 
= true;
                   }
                   
else
                            Yi.Utils.execute(tempTask.before);
         }
}
//public鑾峰彇褰撳墠鐨勬椿鍔ㄧ幆鑺?/span>
Yi.Workflow.prototype.getCurrentTasks 
= function(){
         
return this.currentTasks;
}
//public鑾峰彇嫻佺▼瀹氫箟
Yi.Workflow.prototype.getDef 
= function(){
         
return this.def;
}

 

////////搴旂敤緋葷粺///////////////
var wf = new Yi.Workflow(workflowDef);
alert(
"鍚姩宸ヤ綔嫻?/span>");
wf.start();
alert(
"灝濊瘯鎵嬪伐鎵ц浠誨姟3,榪斿洖宸ヤ綔嫻佹病鏈夋祦杞埌榪欓噷");
wf.signal(
"task3");
alert(
"鍒嗘敮寮濮?/span>");
alert(
"鎵嬪伐鎵ц浠誨姟1");
wf.signal(
"task1");
alert(
"鎵嬪伐鎵ц浠誨姟2");
wf.signal(
"task2");
alert(
"鎵嬪伐鎵ц浠誨姟4");
wf.signal(
"task4");
alert(
"鎵嬪伐鎵ц浠誨姟5");
wf.signal(
"task5");
alert(
"鎵嬪伐鎵ц浠誨姟3");
wf.signal(
"task3");
function begin(){
         alert(
"嫻佺▼寮濮嬶紝璇ュ嚱鏁板湪澶栭儴瀹氫箟");
}
function end(){
         alert(
"嫻佺▼緇撴潫");
}


鏉ㄤ竴 2009-03-06 17:39 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲另类无码专区丝袜| 性做久久久久久久免费看| 国产偷国产偷亚洲高清在线| 亚洲精品视频专区| 亚洲码国产精品高潮在线| 国产免费人人看大香伊| 日韩精品成人无码专区免费| 久久青草免费91线频观看不卡| eeuss影院免费92242部| 亚洲Aⅴ在线无码播放毛片一线天| 亚洲va在线va天堂va手机| 亚洲精选在线观看| 久久久久久久综合日本亚洲| 一本色道久久88亚洲综合| 日韩一级在线播放免费观看| 国产又黄又爽又猛免费app| 18禁无遮挡无码国产免费网站| 免费91最新地址永久入口| a级特黄毛片免费观看| 久久久受www免费人成| 成年免费a级毛片| 一级做α爱过程免费视频| 阿v免费在线观看| 香港经典a毛片免费观看看| 无码一区二区三区亚洲人妻 | 精品一区二区三区高清免费观看| 边摸边吃奶边做爽免费视频网站 | baoyu777永久免费视频 | 亚洲av综合色区| 国产v亚洲v天堂无码网站| 亚洲色中文字幕无码AV| 亚洲中文字幕在线观看| 亚洲日本va中文字幕久久| 亚洲国产婷婷六月丁香| 亚洲AV综合色区无码另类小说| 亚洲AV无码欧洲AV无码网站| 久久精品亚洲综合| 亚洲AV乱码一区二区三区林ゆな| 亚洲国产精品一区二区久久| 精品日韩亚洲AV无码| 亚洲不卡在线观看|