欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java多線程編程之使用Exchanger數(shù)據(jù)交換實例

 更新時間:2015年05月19日 10:07:35   投稿:junjie  
這篇文章主要介紹了Java多線程編程之使用Exchanger數(shù)據(jù)交換實例,本文直接給出實例代碼,需要的朋友可以參考下

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

復(fù)制代碼 代碼如下:

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() + "正在把數(shù)據(jù)'" + data1 +"'換出去");
                    Thread.sleep((long)(Math.random()*10000));
                    String data2 = (String)exchanger.exchange(data1);
                    System.out.println("線程" + Thread.currentThread().getName() + "換回的數(shù)據(jù)為'" + data2+"'");
                }catch(Exception e){
                    
                }
            } 
        });
        service.execute(new Runnable(){
            public void run() {
                try {             
                    String data1 = "李四";
                    System.out.println("線程" + Thread.currentThread().getName() + "正在把數(shù)據(jù)'" + data1 +"'換出去");
                    Thread.sleep((long)(Math.random()*10000));                
                    String data2 = (String)exchanger.exchange(data1);
                    System.out.println("線程" + Thread.currentThread().getName() + "換回的數(shù)據(jù)為'" + data2 + "'");
                }catch(Exception e){
                    
                }             
            } 
        });   
    }
}

返回結(jié)果:

復(fù)制代碼 代碼如下:

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

相關(guān)文章

  • Java注解詳細介紹

    Java注解詳細介紹

    這篇文章主要介紹了Java注解詳細介紹,本文講解了Java注解是什么、Java注解基礎(chǔ)知識、Java注解類型、定義Java注解類型的注意事項等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • java實現(xiàn)簡單日期計算功能

    java實現(xiàn)簡單日期計算功能

    這篇文章主要為大家詳細介紹了java實現(xiàn)簡單日期計算功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • java多線程下載文件原理解析

    java多線程下載文件原理解析

    這篇文章主要為大家詳細介紹了java多線程下載文件原理,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Java中的MapStruct知識點總結(jié)

    Java中的MapStruct知識點總結(jié)

    這篇文章主要介紹了Java中的MapStruct知識點總結(jié),MapStruct是一個Java注解處理器,用于生成類型安全的映射代碼,它可以自動處理源對象和目標(biāo)對象之間的映射,減少了手動編寫重復(fù)的映射代碼的工作量,需要的朋友可以參考下
    2023-10-10
  • Java雪花算法的原理和實現(xiàn)方法

    Java雪花算法的原理和實現(xiàn)方法

    這篇文章主要介紹了Java雪花算法的原理和實現(xiàn)方法,雪花算法是一種分布式唯一ID生成算法,可以生成全局唯一的ID標(biāo)識符,就像自然界中雪花一般沒有相同的雪花,下面將詳細介紹,感興趣的可以學(xué)習(xí)一下
    2023-10-10
  • Redis六大數(shù)據(jù)類型使用方法詳解

    Redis六大數(shù)據(jù)類型使用方法詳解

    這篇文章主要介紹了Redis六大數(shù)據(jù)類型使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • Java中字符串常見的一些拼接方式總結(jié)

    Java中字符串常見的一些拼接方式總結(jié)

    字符串拼接是我們在Java代碼中比較經(jīng)常要做的事情,就是把多個字符串拼接到一起,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java中字符串常見的一些拼接方式,需要的朋友可以參考下
    2023-04-04
  • Java8如何利用Lambda快速生成map、多層嵌套map

    Java8如何利用Lambda快速生成map、多層嵌套map

    這篇文章主要介紹了Java8如何利用Lambda快速生成map、多層嵌套map問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 記一次在idea離線使用maven問題(推薦)

    記一次在idea離線使用maven問題(推薦)

    這篇文章主要介紹了記一次在idea離線使用maven問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • java集合類HashMap源碼解析

    java集合類HashMap源碼解析

    這篇文章主要介紹了Java集合之HashMap用法,結(jié)合實例形式分析了java map集合中HashMap定義、遍歷等相關(guān)操作技巧,需要的朋友可以參考下
    2021-06-06

最新評論