当前位置: 首页 > news >正文

网站建设服务合同交印花税吗正规电商培训班

网站建设服务合同交印花税吗,正规电商培训班,莱芜做网站的商家有哪些,商家产品展示网站源码## 简介 Exchanger是Java并发包中提供的一个用于线程间数据交换的工具类。它允许在两个并发任务之间进行交换对象,当第一个任务调用exchange()方法时,它会阻塞等待另一个任务也调用这个方法,然后双方交换对象,并返回结果&#xf…

## 简介

Exchanger是Java并发包中提供的一个用于线程间数据交换的工具类。它允许在两个并发任务之间进行交换对象,当第一个任务调用exchange()方法时,它会阻塞等待另一个任务也调用这个方法,然后双方交换对象,并返回结果,因此它可以在多线程编程中非常有用。

## 底层实现

Exchanger的底层实现基于AQS(AbstractQueuedSynchronizer)同步器,并使用了类似于管道的结构,它维护了两个格子,一个是slot1,另一个是slot2,线程1放入的对象会保存在slot1中,线程2放入的对象会保存在slot2中,当双方都调用exchange()方法时,会互相交换slot中的对象,并返回,让线程1获取到线程2放入的对象,线程2获取到线程1放入的对象,然后两个格子就会重新变成空的,以便下一次交换使用。

另外,Exchanger使用LockSupport实现线程的阻塞和唤醒,以避免使用Object.wait()和Object.notify()方法时出现死锁等问题。

## 应用场景

Exchanger的应用场景非常广泛,以下是一些常见的案例:

1. 网络爬虫

可以利用多线程从不同的网站上抓取信息,然后使用Exchanger将两个线程得到的信息交换,以便进行处理分析。

2. 数据库操作

有一些应用场景需要对数据库中的数据进行批量处理,可以使用Exchanger将两个线程处理的结果进行交换,以达到提高效率的目的。

3. 多线程任务

多线程任务分为生产者和消费者两部分,Exchanger可以用于在两个任务之间进行数据的交换,大大提高效率。

## 示例代码

以下是一个使用Exchanger实现两个线程交换数据的示例:

```java
import java.util.concurrent.Exchanger;

public class ExchangerThreadDemo {
    public static void main(String[] args) {
        Exchanger<String> exchanger = new Exchanger<>();
        new Thread(() -> {
            try {
                String data1 = exchanger.exchange("data1");
                System.out.println(Thread.currentThread().getName() + " received: " + data1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }, "Thread-1").start();

        new Thread(() -> {
            try {
                String data2 = exchanger.exchange("data2");
                System.out.println(Thread.currentThread().getName() + " received: " + data2);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }, "Thread-2").start();
    }
}
```

运行该示例,输出结果如下:

```
Thread-2 received: data1
Thread-1 received: data2
```

可以看到,两个线程交换了自己的数据,并接收到了对方交换的数据。

总之,Exchanger是一个非常强大的线程间数据交换工具类,可以极大地提高Java并发程序的效率和灵活性。

http://www.15wanjia.com/news/9802.html

相关文章:

  • 金山区做网站吗seo排名优化方式
  • 免费表格模板下载360搜索引擎优化
  • 高职图书馆网站建设大赛廊坊网站推广公司
  • 做网站的分辨率要多大网店代运营商
  • php网站开发答辩问的问题seo招聘网
  • 网站怎么做收入营销活动推广方案
  • 互联网网站开发服务合同常用的网络推广方法有哪些
  • 做网站怎么选择服务器的大小公众号推广接单平台
  • 旅游网站建设公司平台推广是什么工作
  • 网站制作性价比哪家好百度关键词价格排行榜
  • 新奇网站建设杭州网络推广公司
  • 东南亚做网站 什么语言今日头条热搜榜
  • 建筑风水网站接广告的平台
  • 长沙制作公园仿竹护栏seo案例视频教程
  • 金湖县建设局网站当日网站收录查询统计
  • 优秀的政府网站建设成都官网seo厂家
  • 四川德阳做网站和appseo网站推广助理招聘
  • 做网站需要编程嘛网络营销推广方案
  • 猪八戒做网站靠谱吗seo优化工作内容
  • 怎么做网站建设外贸订单一般在哪个平台接?
  • 凉山建设机械网站百度一下就知道百度首页
  • 有经验的聊城网站建设营销网站有哪些
  • 权重域名做网站有用么同城广告发布平台
  • 邹城有做网站的吗百度网盘客服人工电话95188
  • 代运营的工作内容公司关键词排名优化
  • 小米手机网站建设目标竞价推广专员
  • 微信网站开放苏州seo营销
  • 网站开发公司哪里寻找客源销售
  • 洪泽区做网站云南今日头条新闻
  • 网站文章超链接怎么做网站制作和推广