Exchanger(交换者)是一个用于线程间协作的工具类,用于成对出现的线程间的数据交换。它提供一个同步点,在这个同步点两个线程可以交换彼此的数据。
两个线程通过 exchange() 方法交换数据, 如果第一个线程先执行 exchange() 方法,会一直等待第二个线程也执行 exchange(),当两个线程都到达同步点时,两个线程交换数据,将本线程生产出来的数据传递给对方。
Exchanger可以用于遗传算法,也可以用于校对工作。
范例:
/** * 两个线程进行数据交换 */ public class ExchangerTest { private static Exchanger<String> exchanger = new Exchanger<>(); private static ExecutorService threadPool = Executors.newFixedThreadPool(2); public static void main(String[] args) { threadPool.execute(new Runnable() { @Override public void run() { try { String A = "流水A"; String result = exchanger.exchange(A); System.out.println("A --> " + result); } catch (InterruptedException e) { e.printStackTrace(); } } }); threadPool.execute(new Runnable() { @Override public void run() { try { String B = "流水B"; String result = exchanger.exchange(B); System.out.println("B --> " + result); } catch (InterruptedException e) { e.printStackTrace(); } } }); threadPool.shutdown(); } }
相关推荐
### Exchange使用CommVault备份失败处理方法 #### 一、问题背景与概述 在企业级环境中,Exchange Server作为邮件系统的核心组件之一,其数据的安全性和稳定性至关重要。为了确保数据的完整性和可恢复性,通常会...
Exchange 2010 邮箱服务器...总的来说,处理 Exchange 数据库装载失败的问题需要对数据库状态有深入理解,熟悉如何使用 eseutil 工具进行修复和日志管理。同时,定期备份和维护良好的硬件环境可以减少这类问题的发生。
这是因为Exchange使用事务日志记录所有的邮件活动,这些日志在系统空闲时会被写入到数据库中。为了进行恢复,必须确保备份和事务日志的完整性。Exchange的可扩展存储引擎(ESE)备份API或VSS(Volume Shadow Copy ...
这部分重点在于介绍如何使用Outlook Web APP,这是一个基于Web的界面,允许用户在任何位置通过浏览器访问其Exchange邮箱。关键点包括: - **登录流程**:通过特定的URL(例如`https://bjms1001.wistronits.com/owa`...
Exchange使用路由组和连接器来定义邮件路径,确保消息在组织内部和与其他邮件系统之间的顺畅流动。理解路由策略、传输规则和连接器配置对于维护邮件系统的正常运行至关重要。此外,还会涉及如何监控和调整路由设置,...
- **Exchange 与 Active Directory 的紧密集成**:Exchange 使用 Active Directory 存储其所有配置信息,并依赖 Active Directory 进行身份验证和授权。 #### 四、选择正确的管理工具 - **Exchange 系统管理器**...
* 管理员 administrator 安装 Exchange 2016:使用管理员账户安装 Exchange 2016。 * 进入 Exchange 2016 管理页面:完成安装后,进入 Exchange 2016管理页面,开始配置邮件服务器。 在本节中,我们详细介绍了单机...
- 使用 Exchange 部署前检查工具对现有环境进行全面检查,确保符合 Exchange 2016 的最低要求。 **其他组件迁移(可选):** - 根据实际情况考虑是否需要迁移其他组件,例如证书服务器、DHCP 服务器等。 #### 升级...
在本文中,我们将深入探讨如何使用C#编程语言与Microsoft Exchange服务器进行交互,特别是关注如何操作Exchange日历以及查询会议室的使用情况。我们将基于提供的标题、描述和标签,结合源码(假设为EWSTest)来阐述...
"使用Adsiedit从AD中清理Exchange" 本文将详细介绍如何使用Adsiedit从Active Directory(AD)中清理Exchange,以便安装Exchange Server 2010。同时,本文还将介绍 Exchange Server 2010 的安装步骤和恢复丢失的 ...
同时,建议安装 IIS 的全部组件,以便于后续基于 Web 的 Exchange 使用。 3. **登录账户权限**:确保用于安装的账户拥有修改根域配置容器的权限,并且该账户至少属于“EnterpriseAdmins”、“DomainAdmins”或...
在使用Microsoft Exchange 2007的过程中,可能会遇到存储组无法正常载入的情况。这通常表现为当尝试启动或访问存储组时,系统会出现错误提示:“装入数据库“Mailbox Database”失败。错误:Exchange 无法装入指定的...
Exchange 2010中的单项恢复使用详解 26 Exchange Server 2010强大的网络邮局功能 28 Microsoft Exchange Server 2010 在手机终端上强大功能的体现 31 修改Exchange 2010的OWA界面 32 在Exchange 2010 GAL中显示用户...
标题 "exchange/powershell,Java调用powershell开通邮箱" 暗示了这是一个关于使用Java编程语言调用PowerShell脚本在Exchange服务器上创建邮箱的教程或项目。Exchange是微软提供的一款企业级电子邮件服务器软件,而...