비동기란 무엇이며 왜 발생합니까?
비동기성은 두 작업이나 프로세스 사이에 시간 지연이 있는 현상입니다. 이는 장치와 소프트웨어 구성 요소 간의 상호 작용의 복잡성, 긴 계산, 네트워크 대기 시간 또는 사람의 실수로 인한 시간 지연과 같은 다양한 이유로 발생할 수 있습니다. 비동기성은 일부 작업이 실행 대기열 순서대로 완료되기를 기다리는 다른 작업을 차단하는 상황입니다. 예를 들어, 이는 일반적으로 DML(Data Manipulation Language)(데이터 수정 작업(UPDATE, DELETE, INSERT))을 수행할 때 관계형 DBMS 내에서 발생합니다. 이는 "차단"으로 간주됩니다. 작업이 완료될 때까지 데이터베이스에 대한 다른 액세스 작업을 일시 중지합니다.
> 동일한 애플리케이션 내의 동일한 테이블에 대해 두 개의 강력하게 독립적인 쿼리를 실행하려고 할 때 비동기의 결과를 고려하십시오. 1. 첫 번째 쿼리는 세 개의 필드가 있는 테이블의 한 행을 업데이트합니다. 2. 두 번째 쿼리는 UPDATE 테이블 작업에서 도시 이름과 금액을 비교합니다. 3. 결과적으로 코드 준비 정도, 아키텍처, 해당 코드를 담당하는 개발자의 지식 수준에 따라 사고가 발생합니다. 동일한 프로그램이 한 컴퓨터에서는 정상적으로 작동하지만 다른 컴퓨터에서는 작동하지 않을 수 있습니다. 실패 이유는 오버헤드 한도 초과부터 물리적인 RAM 부족까지 다양합니다. 예를 들어, 이 경우 SQL 프레임워크 없이 순수 C 언어로 작성된 프로그램을 Access 쿼리용으로 수정하고 해당 프로그램을 Windows XP를 실행하는 다른 컴퓨터로 전송하면 다음과 같은 결과를 얻을 수 있습니다.