黑马程序员技术交流社区
标题:
【广州校区】+【原创】+ Exchanger实现线程间数据交换
[打印本页]
作者:
jianhong
时间:
2019-1-15 15:01
标题:
【广州校区】+【原创】+ Exchanger实现线程间数据交换
一,以下是使用exchange实现线程1和线程2的数据交换,执行后控制台将输出 线程2拿到的数据这是我线程1的数据,11111111
线程1拿到的数据这是我线程2的数据,2222222
public class
ExchangeTest {
public static void
main
(String[] args) {
Exchanger<String> exchanger =
new
Exchanger<>()
;
ExecutorService service = Executors.
newCachedThreadPool
()
;
//线程1获得线程2数据
service.execute(
new
Runnable() {
@Override
public void
run
() {
try
{
String content =
exchanger
.exchange(
"这是我线程1的数据,11111111"
)
;
System.
out
.println(
"线程1拿到的数据"
+content)
;
}
catch
(InterruptedException e) {
e.printStackTrace()
;
}
}
})
;
//线程2获取线程1数据
service.execute(
new
Runnable() {
@Override
public void
run
() {
try
{
String content =
exchanger
.exchange(
"这是我线程2的数据,2222222"
)
;
System.
out
.println(
"线程2拿到的数据"
+content)
;
}
catch
(InterruptedException e) {
e.printStackTrace()
;
}
}
})
;
service.shutdown()
;
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2