이 기사는 주로 Java 프로그래밍 스레드 동기화 도구 교환기의 사용을 연구합니다. 아래의 특정 콘텐츠를 살펴 보겠습니다.
두 스레드가 작동 중에 사용되는 데이터 또는 공간과 같은 운영 중에 서로 정보를 서로 교환 해야하는 경우 Exchange 클래스를 사용해야합니다. 교환기는 스레드가 정보를 교환하는 매우 편리한 방법을 제공합니다. 두 개의 스레드가 객체를 교환하기위한 동기화 지점 역할을 할 수 있습니다. 각 스레드가 exchange () 메소드에 들어가 객체를 제공하는 경우에만 다른 스레드가 돌아올 때 주어진 객체를 수락 할 수 있습니다.
한 번에 두 스레드 만 데이터를 교환 할 수 있습니다. 여러 스레드가있는 경우 두 개의 스레드만이 데이터를 교환 할 수 있습니다. 일반적인 예를 보자. 손에 손을 대고 하나의 노래로 상품을 배달하십시오!
공개 클래스 ExchangerTest {public static void main (String [] args) {executorService service = executors.newCachedThreadpool (); 최종 교환기 교환기 = new exchanger (); // 교환 객체를 교환 데이터로 정의합니다. "Heroin"; System.out.println ( "스레드" + 스레드 (string) exchanger.exchange (data1); system.out.println ( "스레드" + 스레드. Task Service.Execute (new Runnable () {@public void run () {try {string {string data1 = "3 million"; system.out.println ( "스레드" + 스레드. (문자열) exchanger.exchange (data1); system.out.println ( "스레드" + 스레드. 헤로인! ");}}});}});}});}});}});}}코드에서 나는 두 사람이 약을 거래하는 것을 보았습니다 ... 거래 결과가 어떻게되는지 보자.
스레드 풀 -1- 스레드 -1이 마약 헤로인을 꺼내고 있습니다. 스레드 풀 -1- 스레드 -2가 3 백만을 차지하고 있습니다. 스레드 풀 -1- 스레드 -2는 헤로인 교환을 위해 헤로인 스레드 풀 -1- 스레드 -1을 3 백만으로 받고 있습니다. 거래가 완료되었습니다. 헤로인을 타고 빨리 달리십시오!
거래가 끝나면 돈으로 도망칩니다!
빠르게 실행됩니다. 실행중인 결과로 판단하면 데이터 교환을 실현합니다. 이것은 단지 기본 유형의 데이터를 교환하는 것입니다. 그것의 실제 용도는 이것에 국한되지 않습니다. 예를 들어, 유용한 객체를 교환 할 수 있습니다. JDK는 공식적으로 높은 수준의 응용 프로그램을 언급했습니다.
스레드 사이의 교환 버퍼에 교환기를 사용하므로 필요한 경우 버퍼를 채우는 스레드는 새로 비어있는 버퍼를 가져 와서 채워진 버퍼를 공간 버퍼로 전달합니다.
이것은 실제 상황을 기반으로해야합니다. 아이디어는 위와 동일합니다. 실제로 버퍼 클래스를 정의해야 하며이 버퍼의 클래스는 두 스레드 사이에서 교환됩니다. 클래스에서이를 구현하는 방법에 대해서는 실제 상황에 따라 다릅니다. 그게 바로 교환기 사용을위한 것입니다 ~
위는 Java 프로그래밍 스레드 동기화 도구 교환기의 사용 인스턴스 분석에 대한이 기사의 전체 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!