<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    public class Exchanger<V>
    extends Object
    可以在對中對元素進行配對和交換的線程的同步點。每個線程將條目上的某個方法呈現給 exchange 方法,與伙伴線程進行匹配,并且在返回時接收其伙伴的對象。Exchanger 可能被視為 SynchronousQueue 的雙向形式。Exchanger 可能在應用程序(比如遺傳算法和管道設計)中很有用。

    以上是jdk文檔的說明。

      * 今天公司黨委組織活動、12點半call我電話、我以80碼的速度狂奔過去、上了一個車子(A車)、
      * 戴著眼鏡四處瞄了下,沒發現什么美女啊。假寐了一會兒,司機說另外一個車子(B車)上要換過來
      * 一個人、讓車子上的人下去一個去B車。由于地勢原因、我就下去了。
      *
      * 一路上突然想到了java線程并發庫中的Exchanger類。A車我們可以看作是一個線程、B車我們也可以
      * 看作是一個線程,我和B車上的一位美女換位子,就可以用到Exchanger類的exchange方法。
      *
      * 代碼如下:

    public class ExchangerTest {

        public static void main(String[] args) {

            final Exchanger<String> exchange=new Exchanger<String>();
            //final String a="yupan";
            //final String b="a girl";
            final String[] carA=new String[]{"zhangsan","lisi","yupan"};
            final String[] carB=new String[]{"meinv_a","meinv_b","meinv_c"};
            
            //A車線程
            new Thread(new Runnable(){

                String[] carA_copy=carA;
                @Override
                public void run() {
                    try {
                        System.out.println("交換前:A車上的第三位乘客:"+carA[2]);
                        carA_copy[2]=exchange.exchange(carA_copy[2]);
                        System.out.println("交換后:A車上的第三位乘客:"+carA[2]);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                
            }).start();
            
            //B車線程
            new Thread(new Runnable(){
                
                String[] carB_copy=carB;
                @Override
                public void run() {
                    try {
                        System.out.println("交換前:B車上的第三位乘客:"+carB[2]);
                        carB_copy[2]=exchange.exchange(carB_copy[2]);
                        System.out.println("交換后:B車上的第三位乘客:"+carB[2]);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                
            }).start();
            
        }
    }

    輸出結果:

    交換前:A車上的第三位乘客:yupan
    交換前:B車上的第三位乘客:meinv_c
    交換后:B車上的第三位乘客:yupan
    交換后:A車上的第三位乘客:meinv_c

    http://blog.sina.com.cn/s/blog_7f448c5201012183.html
    posted on 2013-01-08 00:35 abin 閱讀(357) 評論(0)  編輯  收藏 所屬分類: JavaMultithread
    主站蜘蛛池模板: 亚洲AV无码久久久久网站蜜桃| 久久大香伊焦在人线免费| xvideos亚洲永久网址| 中文字幕免费不卡二区| 亚洲免费在线视频播放| 在线a亚洲v天堂网2018| 日本免费高清视频| 亚洲AV永久无码精品网站在线观看| 中文字幕视频免费在线观看| 亚洲综合区图片小说区| 国产伦精品一区二区三区免费下载| 亚洲成人黄色网址| 四虎影在线永久免费四虎地址8848aa| 亚洲精品亚洲人成在线播放| 免费在线观看黄网| 午夜不卡久久精品无码免费| 国产AV无码专区亚洲AV麻豆丫| 国产精品久免费的黄网站| a毛片在线看片免费| 亚洲精品无码久久久久APP| 亚洲AV成人一区二区三区AV| 国产成人免费一区二区三区| 1000部免费啪啪十八未年禁止观看| 亚洲高清中文字幕| 国产成人麻豆亚洲综合无码精品| 日本永久免费a∨在线视频| 亚洲伊人色一综合网| 全亚洲最新黄色特级网站| 波多野结衣免费在线观看| 久久er国产精品免费观看8| 亚洲国产精品美女久久久久| 久久久久久久亚洲Av无码 | 亚洲av无码成人精品国产 | 国产a不卡片精品免费观看 | 国产精品免费看久久久| 国产精品日本亚洲777| 国产.亚洲.欧洲在线| 午夜亚洲国产理论秋霞| 亚洲精品国产精品乱码不卞| 成人无遮挡裸免费视频在线观看| 亚洲精品天堂无码中文字幕|