Java线程--Exchanger使用
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11868576.html
Java线程--Exchanger使用:
Exchanger 是用来交换2个线程之间的消息的, 超过2个线程则是随机发送消息, 不保证可靠性!
public static void main(String[] args) {
        /**
         * 两个线程间的数据交换
         */
        Exchanger exchanger = new Exchanger();
        ExecutorService service1 = Executors.newSingleThreadExecutor();
        service1.execute(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(3000);
                    System.out.println("子线程:"+Thread.currentThread().getName()+"收到的消息是: " + exchanger.exchange("你好这里是线程1"));
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        service1.shutdown();
        ExecutorService service2 = Executors.newSingleThreadExecutor();
        service2.execute(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(3000);
                    System.out.println("子线程:"+Thread.currentThread().getName()+"收到的消息是: " + exchanger.exchange("你好这里是线程2"));
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        service2.shutdown();
    }
打印:
子线程:pool-1-thread-1收到的消息是: 你好这里是线程2
子线程:pool-2-thread-1收到的消息是: 你好这里是线程1
Java线程--Exchanger使用的更多相关文章
- Java线程并发:知识点
		
Java线程并发:知识点 发布:一个对象是使它能够被当前范围之外的代码所引用: 常见形式:将对象的的引用存储到公共静态域:非私有方法中返回引用:发布内部类实例,包含引用. 逃逸:在对象尚未准备 ...
 - 【转载】 Java线程面试题 Top 50
		
Java线程面试题 Top 50 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员 的欢迎.大多数待遇丰厚的J ...
 - Java线程面试题 Top 50 (转载)
		
转载自:http://www.cnblogs.com/dolphin0520/p/3958019.html 原文链接:http://www.importnew.com/12773.html 本文由 ...
 - 50 道 Java 线程面试题(转载自牛客网)
		
下面是 Java 线程相关的热门面试题,你可以用它来好好准备面试. 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理 ...
 - Java线程面试题 Top 50
		
转自:http://www.importnew.com/12773.html 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java ...
 - 【多线程】Java线程面试题 Top 50(转载)
		
Java线程面试题 Top 50 原文链接:http://www.importnew.com/12773.html 本文由 ImportNew - 李 广 翻译自 javarevisited.欢迎 ...
 - Java线程面试题 Top 50(转载)
		
原文链接:http://www.importnew.com/12773.html 本文由 ImportNew - 李 广 翻译自 javarevisited.欢迎加入Java小组.转载请参见文章末尾的 ...
 - [ImportNew]Java线程面试题
		
Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发.调试.优化经验,所以线程相关 ...
 - Java线程面试题 Top 50【转载】
		
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程 ...
 
随机推荐
- Python_PyYaml模块的使用
			
YAML是一种比XML和JSON更轻的文件格式,也更简单更强大,它可以通过缩进来表示结构. 模块安装 pip install pyyaml # 如果是py2,使用 pip install yaml P ...
 - LINUX学习-Mysql集群-主主备份
			
接着主从备份继续. 1.编辑主从服务器 vim /etc/my.cnf 在server-id下添加一句 忽略一些信息 binlog-ignore-db=mysql 2.从服务器也授权给主服务器 gra ...
 - 力扣 - 剑指 Offer 49. 丑数
			
题目 剑指 Offer 49. 丑数 思路1 丑数是只包含 2.3.5 这三个质因子的数字,同时 1 也是丑数.要计算出 n 之前全部的丑数,就必须将 n 之前的每个丑数都乘以 2.3.5,选取出最小 ...
 - Easticsearch概述(API使用)二
			
Rest简介 一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务端互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制 Rest的操作分为以 ...
 - 《剑指offer》面试题37. 序列化二叉树
			
问题描述 请实现两个函数,分别用来序列化和反序列化二叉树. 示例: 你可以将以下二叉树: 1 / \ 2 3 / \ 4 5 序列化为 "[1,2,3,null,null,4,5]&quo ...
 - 根据happens-before法则借助同步
			
在文章的开始,我们先来看一段代码以及他的执行情况: public class PossibleRecording{ static int x = 0, y = 0; static int a = 0, ...
 - FilterConfig接口(Servlet)
			
Javax.Servet 包中提供了一个 FilterCofig 接口,它与 ServletConfig 接口相似,用于在过滤器初始化期间向其传递信息.FilterConfig 接口由容器实现,容器将 ...
 - 返回void-(响应ajax,响应json格式)(了解)
			
将jquery库文件加入到idea中 引入json依赖 index.jsp中 设置按钮发起ajax请求 从处理器方法返回void,响应ajax请求 MyController中
 - 多线程-线程间通信-多生产者多消费者问题(JDK1.5后Lock,Condition解决办法及开发中代码范例)
			
1 package multithread4; 2 3 import java.util.concurrent.locks.Condition; 4 import java.util.concurre ...
 - ORACLE数据库误操作DELETE并且提交数据库之后如何恢复被删除的数据
			
一:根据时间来恢复: 1.查询数据库当前时间() select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; 2.查询删除数据时间点之前的数据 ...