- 浏览: 116692 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
ccfangle:
bestchenwu 写道什么时候用“==”还是“equals ...
操作符“==”与对象的equals()方法 -
bestchenwu:
什么时候用“==”还是“equals()”,跟你是把这个对象作 ...
操作符“==”与对象的equals()方法
用于实现两个线程之间的数据交换,每个人在完成一定的事务后想与对方交换数据,第一个先拿出数据的人要一直等待第二个人拿着数据到来时,才能彼此交换数据
import
java.util.concurrent.Exchanger;
import
java.util.concurrent.ExecutorService;
import
java.util.concurrent.Executors;
public
class
ExchangerTest {
public
static
void
main(String[] args) {
ExecutorService service = Executors.newCachedThreadPool();
final
Exchanger<String> exchanger =
new
Exchanger<String>();
service.execute(
new
Runnable() {
public
void
run() {
try
{
String data1 =
"MacBook Pro"
;
System.out.println(
"线程"
+ Thread.currentThread().getName()
+
"正在把数据"
+ data1 +
"换出去"
);
Thread.sleep((
long
) (Math.random() *
10000
));
String data2 = (String) exchanger.exchange(data1);
System.out.println(
"线程"
+ Thread.currentThread().getName()
+
"换回的数据为"
+ data2);
}
catch
(Exception e) {
}
}
});
service.execute(
new
Runnable() {
public
void
run() {
try
{
String data1 =
"8000RMB"
;
System.out.println(
"线程"
+ Thread.currentThread().getName()
+
"正在把数据"
+ data1 +
"换出去"
);
Thread.sleep((
long
) (Math.random() *
10000
));
String data2 = (String) exchanger.exchange(data1);
System.out.println(
"线程"
+ Thread.currentThread().getName()
+
"换回的数据为"
+ data2);
}
catch
(Exception e) {
}
}
});
service.shutdown();
}
}
上面讲到这些看上去意义不大,其实新技术就是这个样子,你没有遇到新技术善于解决的需求,所以没有看到它的价值,不过说不定下个月,老板的需求就让你抓耳挠腮了,那个时候说不定就是这些新技术大显身手的时候
转自:http://blog.onede4.com/java5-thread-concurrent-exchanger/
发表评论
-
iText watermark(pdf 新增水印,有一页总是新增不了)
2015-10-21 12:11 1029pdf 新增水印,有个总是新增不了:水印能选中,但是就是不 ... -
JDBC userenv('LANG')
2015-08-25 15:51 1444select userenv('LANGUAGE') ,us ... -
回调函数理解
2013-05-17 17:07 1065http://www.cnblogs.com/wangche ... -
Annotation 的作用
2011-12-05 15:51 1239JDK1.5开始,Java中增加了对元数据(Meta ... -
Java 泛型参数类型理解
2011-11-19 16:03 8892<1>泛型参数类型限制 (1) ... -
THINKING IN JAVA(4TH) 答案免費分享 chapter 12 Error Handing With Exceptions
2011-11-03 21:37 3048// exceptions/Ex1.java// TIJ4 ... -
THINKING IN JAVA(4TH) 答案免費分享 chapter 11 Holding Your Object
2011-10-30 20:02 2013// holding/Ex1.java// TIJ4 Ch ... -
THINKING IN JAVA(4TH) 答案免費分享 chapter 10 Inner Classes
2011-10-21 13:56 1887// innerclasses/Outer1.java// T ... -
java中怎样反向显示字符串(包含实际开发中的例子),有很多地方值得借鉴
2011-10-16 20:16 1818链接地址:http://blog.csdn.net/zha ... -
访问控制作用
2011-10-07 16:55 1016进来学习 《Think in Java》很多Java的思想观点 ... -
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出......
2011-08-02 11:16 2012写一个方法,输入一个文 ... -
java.lang.Math.round()学习
2011-07-29 23:16 2956<!-- 正文开始 --> public c ... -
Java Socket编程的详细介绍-2
2011-07-29 10:36 1007客户机代码: import java.net.*; i ... -
Java Socket编程的详细介绍-1
2011-07-29 10:33 843事实上网络编程简单的理解就是两台计算机相互通讯数据而已.对于程 ... -
操作符“==”与对象的equals()方法
2011-07-27 14:52 1300很多时候都会用到类型或者是对象是否相等的比较应用,需要 ... -
Java反射机制
2011-07-21 11:00 803Java提供了一套机制来动态执行方法和构造方法,以及 ... -
Error与Exception有什么区别?
2011-07-20 23:26 2584Error(错误)表示系统级的错误和程序不必处理的异 ... -
StringBuffer与StringBuilder
2011-06-24 11:38 866<1>StringBuffer 线程安全的可变 ...
相关推荐
Java5线程并发库的应用 - **高级特性**:包括`ExecutorService`、`Future`、`Semaphore`、`CountDownLatch`、`CyclicBarrier`、`Exchanger`等工具,提供了更灵活、强大的线程调度和控制机制。 - **优势**:减少...
在Java编程中,多线程是并发编程的重要组成部分,它允许程序同时执行多个任务,从而提高了系统的效率和响应性。然而,在某些场景下,我们可能需要控制线程的执行顺序,确保它们按照特定的顺序交替运行,这在并发编程...
Java线程与并发编程实践是Java开发者必备的技能之一,特别是在多核处理器和高并发应用环境中,有效地管理和利用线程能极大地提升程序的性能。本书《java线程与并发实践编程》由Jeff Friesen撰写,2017年2月出版,...
`java.util.concurrent`包是在JDK5.0之后引入的,它为多线程编程提供了强大的支持,旨在更好地利用现代多处理器或多核系统的性能,以便编写大规模的并发应用程序。这一章节首先介绍了`java.util.concurrent`包的基本...
Java线程是Java程序的基础,它代表程序中的一条执行线索或线路。在Java中创建线程有两种传统方式,一种是通过继承Thread类并覆盖其run方法来创建线程;另一种是通过传递实现了Runnable接口的对象给Thread类的构造...
《Java并发编程实践》是Java开发者深入理解并发编程的重要参考资料,尤其对于想要提升多线程应用设计和性能优化技能的程序员来说,这本书提供了丰富的实践经验和深入的理论知识。以下是根据提供的章节内容概述的一些...
《实战Java高并发程序设计》第二版是一本深入探讨Java多线程和并发编程的书籍。这本书涵盖了Java并发编程的核心概念和技术,旨在帮助开发者在实际项目中高效地处理高并发场景。随书附带的代码提供了丰富的示例,以便...
Java并发核心编程是Java开发中的重要领域,它涉及到如何在多线程环境下高效地执行代码,以充分利用现代多核处理器的资源。在这个话题中,我们将深入探讨Java并发的关键概念、工具和技术。 首先,我们要理解Java并发...
Java互联网架构多线程并发编程原理及实战 视频教程 下载 1-1 课程简介.mp4 1-2 什么是并发编程.mp4 1-3 并发编程的挑战之频繁的上下文切换.mp4 1-4 并发编程的挑战之死锁.mp4 1-5 并发编程的挑战之线程安全....
Java互联网架构多线程并发编程原理及实战 视频教程 下载 1-1 课程简介.mp4 1-2 什么是并发编程.mp4 1-3 并发编程的挑战之频繁的上下文切换.mp4 1-4 并发编程的挑战之死锁.mp4 1-5 并发编程的挑战之线程安全....
Java互联网架构多线程并发编程原理及实战 视频教程 下载 1-1 课程简介.mp4 1-2 什么是并发编程.mp4 1-3 并发编程的挑战之频繁的上下文切换.mp4 1-4 并发编程的挑战之死锁.mp4 1-5 并发编程的挑战之线程安全....
Java互联网架构多线程并发编程原理及实战 视频教程 下载 1-1 课程简介.mp4 1-2 什么是并发编程.mp4 1-3 并发编程的挑战之频繁的上下文切换.mp4 1-4 并发编程的挑战之死锁.mp4 1-5 并发编程的挑战之线程安全....
Java互联网架构多线程并发编程原理及实战 视频教程 下载 1-1 课程简介.mp4 1-2 什么是并发编程.mp4 1-3 并发编程的挑战之频繁的上下文切换.mp4 1-4 并发编程的挑战之死锁.mp4 1-5 并发编程的挑战之线程安全....
【2018最新最详细】并发多线程教程,课程结构如下 1.并发编程的优缺点 2.线程的状态转换以及基本操作 ...26.大白话说java并发工具类-Semaphore,Exchanger 27.一篇文章,让你彻底弄懂生产者--消费者问题
`java.util.concurrent`包是Java标准库中专门用于并发编程的模块,它包含了各种线程安全的数据结构、同步机制和执行模型。这个包的引入极大地简化了并发编程的复杂性,提供了一套高效且易用的并发工具。 **3.2 ...
5. **并发工具类**:介绍`CountDownLatch`、`CyclicBarrier`、`Semaphore`和`Exchanger`等并发工具类,用于协调多个线程间的同步和协作。 6. **并发设计模式**:讨论适用于并发编程的设计模式,如生产者-消费者模式...
JAVA并发编程-2-线程并发工具类一、Fork/Join1、分而治之与工作密取2、使用标准范式3、Fork/Join的同步用法4、Fork/Join的异步用法二、CountDownLatch三、CyclicBarrier四、Semaphore信号量五、Exchanger ...