现在的位置: 首页 > 综合 > 正文

Exchanger 线程数据的交换器

2012年03月10日 ⁄ 综合 ⁄ 共 871字 ⁄ 字号 评论关闭

Exchanger类实现了多个线程数据之间的安全交换。

以下是小示例:

import java.util.Random;
import java.util.concurrent.Exchanger;
/**
 * 线程数据交换器
 * @author YangBaoBao
 *
 */
public class ExchangerDemo {
 public static void main(String[] args) {
  final Exchanger<String> changer=new Exchanger<String>();
  new Thread(new Runnable() {
   
   public void run() {
    try{
     Thread.sleep(new Random().nextInt(5000));
     String data1="data1";
     String data2=changer.exchange(data1);
     System.out.println("thread1 get return data is "+data2);
    }catch (Exception e) {
     e.printStackTrace();
    }
    
   }
  }).start();
  new Thread(new Runnable() {
     
     public void run() {
      try{
       Thread.sleep(new Random().nextInt(5000));
       String data1="data2";
       String data2=changer.exchange(data1);
       System.out.println("thread2 get return data is "+data2);
      }catch (Exception e) {
       // TODO: handle exception
      }
      
     }
    }).start();
 }
}

抱歉!评论已关闭.