第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

java并發(fā)編程JUC第十一篇:如何在線程之間進(jìn)行對等數(shù)據(jù)交換

標(biāo)簽:
Java

java.util.concurrent.Exchanger可以用来进行数据交换,或者被称为“数据交换器”。两个线程可以使用Exchanger交换数据,下图用来说明Exchanger的作用

在下面的代码中

  • 首先我们定义了一个Exchanger,用于数据交换
  • 然后定义了两个线程对象bookExchanger1和bookExchanger2,两个线程都持有Exchanger交换器对象用于数据交换
  • 两个线程中的每个线程都有自己的数据,比如下面代码中的String[] 书籍数组。
public static void main(String[] args) {
  //数据交换器-数据为book
  Exchanger<String> exchanger = new Exchanger<>();
  //换书线程1
  BookExchanger bookExchanger1
          = new BookExchanger(exchanger, new String[]{"Java从入门到放弃","Java编程思想"});
  //换书线程2
  BookExchanger bookExchanger2
          = new BookExchanger(exchanger, new String[]{"C语言程序设计","实战Python数据分析"});
  
  new Thread(bookExchanger1).start();
  new Thread(bookExchanger2).start();
}

BookExchanger 继承自Runnable代表参与换书的换书读者,他持有Exchanger数据交换器用于交换图书。

public class BookExchanger implements Runnable{

    Exchanger<String> exchanger = null;  //数据交换器
    String[]  books    = null;   //图书数组

    public BookExchanger(Exchanger<String> exchanger, String[] books) {
        this.exchanger = exchanger;
        this.books = books;
    }

    @Override
    public void run() {
        try {
            for(String bookName : books) {
                //交换数据,bookName为我的书,exBook为我换回来的书
                String exBook = this.exchanger.exchange(bookName);
                System.out.println(
                        Thread.currentThread().getName() +
                                " 用《 " + bookName + "》 换 《 " + exBook + "》"
                );
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

执行上文中的代码,得到如下的打印输出。可以看到只有两个线程完成一次交换之后,才能再进行下一次的交换。

Thread-1 用《 C语言程序设计》 换 《 Java从入门到放弃》
Thread-0 用《 Java从入门到放弃》 换 《 C语言程序设计》
Thread-1 用《 实战Python数据分析》 换 《 Java编程思想》
Thread-0 用《 Java编程思想》 换 《 实战Python数据分析》

欢迎关注我的博客,里面有很多精品合集

  • 本文转载注明出处(必须带连接,不能只转文字):[字母哥博客] www.zimug.com 。
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消