Exchanger线程拷贝
发布日期:2021-10-18 18:51:27 浏览次数:2 分类:技术文章

本文共 1524 字,大约阅读时间需要 5 分钟。

import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.Exchanger;/** * Created by yuanyong on 17/2/8. */public class ThreadLocalTest {    public static void main(String[] args) {        Exchanger
> exchanger = new Exchanger
>(); new Consumer(exchanger).start(); new Producer(exchanger).start(); }}class Producer extends Thread { List
list = new ArrayList
(); Exchanger
> exchanger = null; public Producer(Exchanger
> exchanger) { super(); this.exchanger = exchanger; } @Override public void run() { Random rand = new Random(); for(int i=0; i<10; i++) { list.clear(); list.add(rand.nextInt(10000)); list.add(rand.nextInt(10000)); list.add(rand.nextInt(10000)); list.add(rand.nextInt(10000)); list.add(rand.nextInt(10000)); try { list = exchanger.exchange(list); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}class Consumer extends Thread { List
list = new ArrayList
(); Exchanger
> exchanger = null; public Consumer(Exchanger
> exchanger) { super(); this.exchanger = exchanger; } @Override public void run() { for(int i=0; i<10; i++) { try { list = exchanger.exchange(list); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.print(list.get(0)+", "); System.out.print(list.get(1)+", "); System.out.print(list.get(2)+", "); System.out.print(list.get(3)+", "); System.out.println(list.get(4)+", "); } }}

转载地址:https://blog.csdn.net/u011153869/article/details/54965262 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:spring源码解析(一)
下一篇:RecursiveTask

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月13日 05时37分47秒