国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java多線程編程之使用Exchanger數據交換實例

2019-11-26 15:11:44
字體:
來源:轉載
供稿:網友

用于實現兩個人之間的數據交換,每個人在完成一定的事務后想與對方交換數據,第一個先拿出數據的人將一直等待第二個人拿著數據到來時,才能彼此交換數據。

復制代碼 代碼如下:

package com.ljq.test.thread;
 
import java.util.concurrent.Exchanger;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
 
public class ExchangerTest {
 
    public static void main(String[] args) {
        
        ExecutorService service = Executors.newCachedThreadPool();
        final Exchanger exchanger = new Exchanger();
        service.execute(new Runnable(){
            public void run() {
                try {             
 
                    String data1 = "張三";
                    System.out.println("線程" + Thread.currentThread().getName() + "正在把數據'" + data1 +"'換出去");
                    Thread.sleep((long)(Math.random()*10000));
                    String data2 = (String)exchanger.exchange(data1);
                    System.out.println("線程" + Thread.currentThread().getName() + "換回的數據為'" + data2+"'");
                }catch(Exception e){
                    
                }
            } 
        });
        service.execute(new Runnable(){
            public void run() {
                try {             
                    String data1 = "李四";
                    System.out.println("線程" + Thread.currentThread().getName() + "正在把數據'" + data1 +"'換出去");
                    Thread.sleep((long)(Math.random()*10000));                
                    String data2 = (String)exchanger.exchange(data1);
                    System.out.println("線程" + Thread.currentThread().getName() + "換回的數據為'" + data2 + "'");
                }catch(Exception e){
                    
                }             
            } 
        });   
    }
}

返回結果:

復制代碼 代碼如下:

線程pool-1-thread-1正在把數據'張三'換出去
線程pool-1-thread-2正在把數據'李四'換出去
線程pool-1-thread-1換回的數據為'李四'
線程pool-1-thread-2換回的數據為'張三'

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广水市| 灵璧县| 通城县| 独山县| 商都县| 靖州| 大足县| 通城县| 宁远县| 建昌县| 桂阳县| 陆河县| 麻江县| 遵义市| 麟游县| 如东县| 铜山县| 玛多县| 南投市| 安西县| 濮阳市| 威宁| 安远县| 荃湾区| 宿州市| 佛冈县| 太谷县| 乐至县| 沙河市| 阿克| 沐川县| 昌宁县| 洪洞县| 农安县| 奈曼旗| 信丰县| 涟水县| 安溪县| 通城县| 迁西县| 微博|