JUC之Exchanger-多執行緒與高併發
Exchanger支援兩個執行緒交換指定型別T的值(物件的話是交換引用,基本型別的話直接交換值) 一個執行緒在執行exchange()方法後進入阻塞等待狀態(也可以提前指定要等待的時間),等待另一個執行緒呼叫同一個exchanger物件的exchange()方法 交換完成後,執行緒不再阻塞,可以繼續執行後面的程式碼。
package basic.aqs.Exchanger;
import java.util.concurrent.Exchanger;
/**
* Exchanger支援兩個執行緒交換指定型別T的值(物件的話是交換引用,基本型別的話直接交換值)
* 一個執行緒在執行exchange()方法後進入阻塞等待狀態(也可以提前指定要等待的時間),等待另一個執行緒呼叫同一個exchanger物件的exchange()方法
* 交換完成後,執行緒不再阻塞,可以繼續執行後面的程式碼
*/
public class TestExchanger {
static Exchanger<String> exchanger = new Exchanger<>();
public static void main(String[] args) {
new Thread(()->{
String s = "T1";
try {
s = exchanger.exchange(s);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + " " + s);
}, "t1").start();
new Thread(()->{
String s = "T2";
try {
s = exchanger.exchange(s);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + " " + s);
}, "t2").start();
}
}
相關文章
- 一文看懂JUC多執行緒及高併發執行緒
- 多執行緒與高併發(二)執行緒安全執行緒
- 多執行緒與高併發(一)多執行緒入門執行緒
- 併發與多執行緒之執行緒安全篇執行緒
- 【多執行緒與高併發】- 執行緒基礎與狀態執行緒
- Java高併發與多執行緒(一)-----概念Java執行緒
- 【多執行緒與高併發 2】volatile 篇執行緒
- 【多執行緒與高併發】- 淺談volatile執行緒
- 分散式叢集與多執行緒高併發分散式執行緒
- Java高併發與多執行緒(二)-----執行緒的實現方式Java執行緒
- Java多執行緒與併發之ThreadLocalJava執行緒thread
- 多執行緒與高併發(三)synchronized關鍵字執行緒synchronized
- 【多執行緒與高併發3】常用鎖例項執行緒
- 【多執行緒與高併發】從一則招聘資訊進入多執行緒的世界執行緒
- 併發與多執行緒基礎執行緒
- 多執行緒與併發----Semaphere同步執行緒
- java多執行緒與併發 - 併發工具類Java執行緒
- java多執行緒與併發 - 執行緒池詳解Java執行緒
- 多執行緒與高併發(五)final關鍵字執行緒
- 分散式、高併發與多執行緒有何區別分散式執行緒
- 多執行緒高併發解決辦法執行緒
- Java高併發與多執行緒(三)-----執行緒的基本屬性和主要方法Java執行緒
- 多執行緒與併發----讀寫鎖執行緒
- 你分得清分散式、高併發與多執行緒嗎?分散式執行緒
- 分散式、高併發與多執行緒、你分辨的清嗎?分散式執行緒
- JAVA多執行緒併發Java執行緒
- Java多執行緒/併發06、執行緒鎖Lock與ReadWriteLockJava執行緒
- 多執行緒併發篇——如何停止執行緒執行緒
- Java學習之併發多執行緒理解Java執行緒
- 【多執行緒與高併發】Java守護執行緒是什麼?什麼是Java的守護執行緒?執行緒Java
- 這或許是最詳細的JUC多執行緒併發總結執行緒
- Java多執行緒與併發 - 瞭解“monitor”Java執行緒
- 多執行緒與併發-----Lock鎖技術執行緒
- 【多執行緒高併發程式設計】二 實現多執行緒的幾種方式執行緒程式設計
- JUC執行緒高階---執行緒控制通訊Condition執行緒
- Java併發指南1:併發基礎與Java多執行緒Java執行緒
- java 多執行緒 併發 面試Java執行緒面試
- java高併發系列 - 第16天:JUC中等待多執行緒完成的工具類CountDownLatch,必備技能Java執行緒CountDownLatch