코드 실행은 계속하기 전에 이벤트를 차단하거나 기다립니다. 이벤트가 응답을 반환할 때까지 프로그램은 더 이상 실행되지 않습니다. 따라서 기본적으로 콜백은 호출 문으로 돌아가기 전에 모든 작업을 수행합니다. 동기 콜백의 문제는 지연된 것처럼 보인다는 것입니다. 참고 문헌: https://www.javaworld.com/article/2077462/learn-java/java-tip-10-implement-callback-routines-in-java.html https://en.wikipedia.org/wiki/Callback_(computer_programming) 이것은 우리에게 클래스의 모든 객체에 대한 그립을 제공합니다. 인터페이스를 구현합니다. 그래서, 우리는 다른 외부 유형 정보에 자신을 걱정할 필요가 없습니다. 이것은 Motif를 사용하여 C ++ 코드를 사용할 때 위젯의 데이터 필드를 사용하여 개체 포인터를 보유하는 trampoline C 함수를 해킹하는 것보다 훨씬 좋습니다. 콜백 함수는 인수로 다른 함수로 전달 되는 함수이며 일종의 이벤트 후에 실행 될 것으로 예상 됩니다. 콜백의 목적은 다른 클래스의 일부 작업이 완료되면 클래스 동기화 / 비동기를 알리는 것입니다. 이 기능은 비동기 작업으로 작업할 때 매우 유용합니다. 단추를 클릭하거나 인터넷에서 데이터를 가져온 후 일부 작업을 수행하거나 콘텐츠를 표시하는 것과 같은 몇 가지 일상적인 작업을 수행한다고 가정합니다. 이것은 또한 이벤트 처리에 사용 됩니다., 우리는 버튼 콜백 기능을 통해 클릭 하는 경우 알림을 받을.

http://cleancodedevelopment-qualityseal.blogspot.com.br/2012/10/understanding-callbacks-with-java.html 코드 예제 이벤트 기반 프로그래밍의 경우 이벤트가 발생할 때 호출되는 함수에 대한 참조를 전달합니다. 이 메커니즘을 콜백이라고 합니다. Java는 함수 포인터를 지원하지 않습니다. 그래서 우리는 같은 방향을 구현 할 수 없습니다. 그러나 인터페이스를 사용하면 매우 쉽게 동일한 것을 얻을 수 있습니다. Java의 인터페이스 지원은 콜백과 동등한 메커니즘을 제공합니다. 트릭은 호출할 메서드를 선언하는 간단한 인터페이스를 정의하는 것입니다. 이것이 당신이 찾고있는 것인지 는 모르겠지만, 자식 클래스에 콜백을 전달하여이를 달성 할 수 있습니다. JavaWorld의 가장 인기있는 장기 실행 시리즈의 연속, 자바 개발자 커뮤니티에서 동료의 새롭고 고전적인 자바 프로그래밍 팁을 특징으로. 이 예제에서는 이벤트를 트리거할지 여부를 추적하기 위해 somethingHappened 조건어를 사용했습니다. 많은 경우에, 메서드가 호출되었다는 사실은 흥미로운 신호를 보증하기에 충분합니다Event().

비동기 호출은 코드 실행에서 프로그램을 차단하지 않습니다. 호출이 이벤트에서 반환될 때 호출이 콜백 함수로 돌아갑니다. 따라서 java의 컨텍스트에서 새 스레드를 만들어 해당 스레드 내부의 콜백 메서드를 호출해야합니다. 콜백은 스레드에서 호출될 수 있지만 필수 사항은 아닙니다. 콜백은 새 스레드를 시작할 수도 있으므로 자신을 비동기화할 수도 있습니다. MS-Windows 및 X Window System의 이벤트 기반 프로그래밍 모델에 익숙한 개발자는 어떤 일이 발생하면 호출되는 함수 포인터(즉, “호출”)를 전달하는 데 익숙합니다. Java의 개체 지향 모델은 현재 메서드 포인터를 지원하지 않으므로 이 편안한 메커니즘을 사용하는 것을 배제하는 것 같습니다.