개념:
1. 동기화: 사용자에게 반환되기 전에 모든 작업이 완료됩니다. 이런 방식으로 사용자는 온라인에서 너무 오랫동안 기다리게 되어 사용자에게 정체된 느낌을 줍니다. 즉, 시스템이 마이그레이션되는 동안 Migrate를 클릭하면 인터페이스는 이동하지 않지만 프로그램은 여전히 실행 중이어서 사용자에게 막힌 느낌). 이 경우 사용자는 인터페이스를 닫을 수 없습니다. 인터페이스가 닫히면 마이그레이션 프로세스가 중단됩니다.
2. 비동기식: 사용자 요청을 메시지 대기열에 넣고 이를 사용자에게 피드백합니다. 시스템 마이그레이션 프로그램이 시작되었으며 브라우저를 닫을 수 있습니다. 그런 다음 프로그램은 천천히 데이터베이스에 씁니다. 이것은 비동기식입니다. 그러나 사용자는 정체된 느낌을 받지 않고 시스템이 귀하의 요청에 응답했음을 알려줄 것입니다. 인터페이스를 닫을 수 있습니다.
[추천 학습: Java 비디오 튜토리얼]
동기화는 결과가 사용자에게 반환되기 전에 모든 작업이 완료된다는 것을 의미합니다. 즉, 데이터베이스에 쓴 후에는 해당 사용자에게 사용자 경험이 좋지 않습니다.
비동기식에서는 사용자 요청에 응답하기 전에 모든 작업이 완료될 때까지 기다릴 필요가 없습니다. 즉, 먼저 사용자 요청에 응답한 다음 천천히 데이터베이스에 쓰므로 더 나은 사용자 경험을 제공합니다.
동기 및 비동기 작업의 예:
1. 동기화:
예를 들어 은행 이체 시스템, 데이터베이스 저장 작업 등은 모두 동기식 대화형 작업을 사용합니다.
2. 비동기식:
단시간에 많은 수의 데이터베이스 작업을 피하기 위해 메시지 대기열인 캐싱 메커니즘이 사용됩니다. 먼저 데이터를 메시지 큐에 넣은 다음 천천히 데이터베이스에 씁니다.
메시지 큐 메커니즘을 도입하면 사용자 요청에 대한 빠른 응답을 보장할 수 있지만 데이터 마이그레이션 시간이 단축되지는 않습니다. 즉, mysql에 80만 개의 데이터를 쓰는 데 1시간이 걸립니다. redis를 사용한 후에도 여전히 1시간이 소요되며 사용자가 http url 요청을 완료한 후 브라우저를 닫고 다른 작업을 수행할 수 있습니다. redis를 사용하지 않으면 브라우저를 닫을 수 없습니다.
위 내용은 Java에서 동기식과 비동기식의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!