Java 동시 프로그래밍 - Exchange
8386 단어 java 병렬 프로그래밍
1. 소개
Exchange는
java.util.concurrent
패키지 아래에 위치하고 주로 라인 간의 데이터 교환에 사용되는 도구류로 파이프 설계와 유전 알고리즘에 자주 사용된다.Exchange는 동기화 지점을 제공합니다. 이 동기화 지점에서 라인이 짝을 이루고 데이터 교환을 진행합니다.첫 번째 라인이 exchange () 방법을 호출할 때 대상을 전송합니다. 두 번째 대상이 exchange () 방법을 호출할 때까지 기다립니다. 모든 라인의 exchange () 방법은 일치하는 라인이 exchange () 방법에 전송된 대상을 되돌려받고 데이터 교환을 완성합니다.Exchange는 양방향 데이터 전송의 SynchronousQueue로 간주할 수 있습니다.2. 소개
2.1 구조 방법
——public Exchange(){}
2.2 주요 방법
——public V exchange(V x) throws InterruptedException{}
——public V exchange(V x) throws InterruptedException{}
3. 사례
고정 스레드 탱크를 만드는 수량은 2이고, 두 스레드는 문자열 데이터를 교환하는 것을 예로 들며, 그 중 한 스레드 실행 방법인 exchange () 방법이 있을 때, 두 번째 스레드가 exchange () 방법을 실행하고, 두 스레드가 데이터의 교환을 완성할 때까지 기다린다.만약 두 라인에 exchange () 방법을 실행하지 않았다면, 계속 기다릴 것입니다.
public class ExChangeDemo {
private static ExecutorService exec = Executors.newFixedThreadPool(2);
// Exchange
private static Exchanger<String> change = new Exchanger<>();
public static void main(String[] args) {
exec.execute(new Runnable() {
public void run() {
String A="change data--1";
try {
String B = change.exchange(A);
System.out.println("Current Thread:"+Thread.currentThread().getName()+",After change:"+B);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
exec.execute(new Runnable() {
public void run() {
String B="change data--2";
try {
String A=change.exchange(B);
System.out.println("Current Thread:"+Thread.currentThread().getName()+",After change:"+A);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
exec.shutdown();
}
}
실행 결과:
Current Thread:pool-1-thread-2,After change:change data--1
Current Thread:pool-1-thread-1,After change:change data--2
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
DelayQueue 대기열 상세 정보DelayQueue는 java.util.concurrent에서 제공한 재미있는 종류이다.본고는 DelayQueue에 대해 소개한 다음에 응용 장면을 열거할 것이다.또한 Delayed 인터페이스 구현과 Sample 코...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.