1. Exchanger 在双线程数据交换场景下的工程用例与注意事项
Exchanger 在双线程数据交换场景下的工程用例与注意事项是什么?
- Exchanger 语义
- 双线程交换
- 注意事项
Exchanger 用于两个线程在某个栅栏点交换数据:两个线程都调用 exchange(x),各自返回对方的数据,实现"我给你的、你给我"。工程用例:双线程流水线(如 A 线程处理前半、B 线程处理后半,在交接点交换缓冲区)、成对的双缓冲交换、对称算法。注意事项:1) 必须恰好两个线程,线程数不符会永久等待;2) 用超时 exchange(timeout) 避免阻塞;3) 可中断;4) 记得 exchange 后返回的是对方的数据,双方要正确使用;5) 若线程数动态变化,Phaser 更合适。
Exchanger 是"双线程栅栏交换",适合固定两线程的对称交接。注意线程数匹配与超时。