锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品视频区,精品国产乱码久久久久久老虎 ,日本成人一区二区三区http://www.aygfsteel.com/anchor110/category/42995.htmlzh-cnWed, 31 Oct 2012 14:19:23 GMTWed, 31 Oct 2012 14:19:23 GMT60CountDownLatch鐨勪嬌鐢紙娉細(xì)杞澆浜巋ttp://www.aygfsteel.com/fanjs2000/archive/2012/10/31/390521.html錛?/title><link>http://www.aygfsteel.com/anchor110/articles/390549.html</link><dc:creator>灝忎竴璐ユ秱鍦?/dc:creator><author>灝忎竴璐ユ秱鍦?/author><pubDate>Wed, 31 Oct 2012 09:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/anchor110/articles/390549.html</guid><wfw:comment>http://www.aygfsteel.com/anchor110/comments/390549.html</wfw:comment><comments>http://www.aygfsteel.com/anchor110/articles/390549.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/anchor110/comments/commentRss/390549.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/anchor110/services/trackbacks/390549.html</trackback:ping><description><![CDATA[<div>CountDownLatch濡傚叾鎵鍐欙紝鏄竴涓掕鏁扮殑閿佸瓨鍣紝褰撹鏁板噺鑷?鏃惰Е鍙戠壒瀹氱殑浜嬩歡銆傚埄鐢ㄨ繖縐嶇壒鎬э紝鍙互璁╀富綰跨▼絳夊緟瀛愮嚎紼嬬殑緇撴潫銆備笅闈互涓涓ā鎷熻繍鍔ㄥ憳姣旇禌鐨勪緥瀛愬姞浠ヨ鏄庛?/div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.concurrent.CountDownLatch;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.concurrent.ExecutorService;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.concurrent.Executors;<br /><br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> Test {<br />    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> PLAYER_AMOUNT </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">5</span><span style="color: #000000; ">;<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> main(String[] args) {        <br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; ">瀵逛簬姣忎綅榪愬姩鍛橈紝CountDownLatch鍑?鍚庡嵆緇撴潫姣旇禌</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        CountDownLatch begin </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> CountDownLatch(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; ">瀵逛簬鏁翠釜姣旇禌錛屾墍鏈夎繍鍔ㄥ憳緇撴潫鍚庢墠綆楃粨鏉?/span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        CountDownLatch end </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> CountDownLatch(PLAYER_AMOUNT);<br />        Player[] plays </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Player[PLAYER_AMOUNT];<br /><br />        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">; i </span><span style="color: #000000; "><</span><span style="color: #000000; "> PLAYER_AMOUNT; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />            plays[i] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Player(i </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">, begin, end);<br /><br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; ">璁劇疆鐗瑰畾鐨勭嚎紼嬫睜錛屽ぇ灝忎負(fù)5</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        ExecutorService exe </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Executors.newFixedThreadPool(PLAYER_AMOUNT);<br />        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (Player p : plays)<br />            exe.execute(p); </span><span style="color: #008000; ">//</span><span style="color: #008000; ">鍒嗛厤綰跨▼</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        begin.countDown();<br />        System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Race begins!</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        </span><span style="color: #0000FF; ">try</span><span style="color: #000000; "> {<br />            end.await(); </span><span style="color: #008000; ">//</span><span style="color: #008000; ">絳夊緟end鐘舵佸彉涓?錛屽嵆涓烘瘮璧涚粨鏉?/span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (InterruptedException e) {<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO: handle exception</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">            e.printStackTrace();<br />        } </span><span style="color: #0000FF; ">finally</span><span style="color: #000000; "> {<br />            System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Race ends!</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        }<br />        exe.shutdown();<br />    }<br />}<br /><br /></span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> Player </span><span style="color: #0000FF; ">implements</span><span style="color: #000000; "> Runnable {<br /><br />    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> id;<br />    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> CountDownLatch begin;<br />    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> CountDownLatch end;<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> Player(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i, CountDownLatch begin, CountDownLatch end) {<br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated constructor stub</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">();<br />        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.id </span><span style="color: #000000; ">=</span><span style="color: #000000; "> i;<br />        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.begin </span><span style="color: #000000; ">=</span><span style="color: #000000; "> begin;<br />        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.end </span><span style="color: #000000; ">=</span><span style="color: #000000; "> end;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> run() {<br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated method stub</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">try</span><span style="color: #000000; "> {<br />            begin.await(); </span><span style="color: #008000; ">//</span><span style="color: #008000; ">絳夊緟begin鐨勭姸鎬佷負(fù)0</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">            Thread.sleep((</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">) (Math.random() </span><span style="color: #000000; ">*</span><span style="color: #000000; "> </span><span style="color: #000000; ">100</span><span style="color: #000000; ">)); </span><span style="color: #008000; ">//</span><span style="color: #008000; ">闅忔満鍒嗛厤鏃墮棿錛屽嵆榪愬姩鍛樺畬鎴愭椂闂?/span><span style="color: #008000; "><br /></span><span style="color: #000000; ">            System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Play</span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">+</span><span style="color: #000000; "> id </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; "> arrived.</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (InterruptedException e) {<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO: handle exception</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">            e.printStackTrace();<br />        } </span><span style="color: #0000FF; ">finally</span><span style="color: #000000; "> {<br />            end.countDown(); </span><span style="color: #008000; ">//</span><span style="color: #008000; ">浣縠nd鐘舵佸噺1錛屾渶緇堝噺鑷?</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        }<br />    }<br />}</span></div><img src ="http://www.aygfsteel.com/anchor110/aggbug/390549.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/anchor110/" target="_blank">灝忎竴璐ユ秱鍦?/a> 2012-10-31 17:19 <a href="http://www.aygfsteel.com/anchor110/articles/390549.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>synchronized(this) 瑙i噴http://www.aygfsteel.com/anchor110/articles/388699.html灝忎竴璐ユ秱鍦?/dc:creator>灝忎竴璐ユ秱鍦?/author>Thu, 27 Sep 2012 08:03:00 GMThttp://www.aygfsteel.com/anchor110/articles/388699.htmlhttp://www.aygfsteel.com/anchor110/comments/388699.htmlhttp://www.aygfsteel.com/anchor110/articles/388699.html#Feedback0http://www.aygfsteel.com/anchor110/comments/commentRss/388699.htmlhttp://www.aygfsteel.com/anchor110/services/trackbacks/388699.htmlpublic class DemoThread implements Runnable {
   
public void run() {
        synchronized(this) {            //璇烽棶榪欓噷鐨則his鎬庢牱鐞嗚В錛宼1鍜宼2鐨勫湴鍧涓嶆槸涓嶄竴鏍峰槢錛屾庝箞浼?xì)鍙湁涓涓嚎紼嬭繍琛岋紵錛燂紵
            for (int i = 0; i < 5; i++) {
                System.out.println(Thread.currentThread().getName() 
+ " synchronized loop " + i); 
            }
         }
    }

    public static void main(String[] args) {
        DemoThread t1 
= new DemoThread();
        Thread ta 
= new Thread(t1, "A");
        Thread tb 
= new Thread(t1, "B");
        ta.start();
        tb.start(); 
    }
}


    瑙i噴錛?br />    榪欓噷鐨則his鏄寚褰撳墠瀵硅薄,涔熷氨鏄涓嶇ta榪樻槸tb,鍒氬紑濮嬭繍琛岃繖孌典唬鐮佺殑鏃跺欎細(xì)緇欒繖孌典唬鐮佸姞涓攣,榪欐牱鍗充嬌榪愯鍒頒腑闂磋鏇挎崲浜?
鍙︿竴涓嚎紼嬩篃涓嶄細(xì)鎵ц榪欐浠g爜,鍥犱負(fù)榪欐浠g爜鍔犻攣浜?鑰岄挜鍖欏湪緇欎唬鐮佸姞閿佺殑閭d釜綰跨▼鎵嬮噷,鍙湁鍔犻攣鐨勭嚎紼嬭繍琛屽畬榪欐浠g爜,鎵嶄細(xì)緇欎唬鐮佽В閿?
鐒跺悗鍏朵粬綰跨▼鎵嶈兘鎵ц榪欐浠g爜.. 鍔犱釜synchronized(this)浠ュ悗榪愯緇撴灉鏄繖鏍?
A synchronized loop 0
A synchronized loop 1
A synchronized loop 2
A synchronized loop 3
A synchronized loop 4
B synchronized loop 0
B synchronized loop 1
B synchronized loop 2
B synchronized loop 3
B synchronized loop 4

涓嶅姞鐨勮瘽鏄繖鏍?(欏哄簭涔變簡,鏈夊ソ澶氱緇撴灉,榪欓噷鍙槸鍏朵腑涓縐?..
A synchronized loop 0
B synchronized loop 0
A synchronized loop 1
B synchronized loop 1
A synchronized loop 2
B synchronized loop 2
A synchronized loop 3
B synchronized loop 3
B synchronized loop 4
A synchronized loop 4




       

]]>
主站蜘蛛池模板: 微博| 崇文区| 思南县| 新邵县| 朝阳市| 广平县| 炎陵县| 天祝| 上高县| 铜陵市| 龙里县| 通江县| 景宁| 株洲市| 东宁县| 康乐县| 上犹县| 龙胜| 宁远县| 定日县| 漳平市| 石林| 南昌县| 德昌县| 伊春市| 常宁市| 通州区| 通山县| 吴忠市| 股票| 饶阳县| 长春市| 太和县| 秭归县| 嵩明县| 宁德市| 灌南县| 扬中市| 井陉县| 疏勒县| 黄冈市|