国产探花免费观看_亚洲丰满少妇自慰呻吟_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換回的數據為'張三'

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 出国| 始兴县| 新营市| 碌曲县| 葵青区| 湛江市| 隆德县| 宿迁市| 石泉县| 西乌| 洛浦县| 武安市| 通州区| 灵丘县| 平原县| 东兰县| 高唐县| 灵武市| 益阳市| 新昌县| 兰州市| 漳州市| 金塔县| 栖霞市| 汽车| 阿合奇县| 吴川市| 象山县| 德兴市| 望都县| 黑龙江省| 蛟河市| 方山县| 绥中县| 南康市| 衡南县| 天全县| 平定县| 松桃| 镇平县| 隆子县|