비동기(컴퓨터 프로그래밍)
Asynchrony (computer programming)비동기란 컴퓨터 프로그래밍에서 메인 프로그램 흐름과 무관하게 발생하는 이벤트와 이러한 이벤트를 처리하는 방법을 말합니다.이러한 이벤트는 신호 도착이나 프로그램 실행과 동시에 발생하는 프로그램에 의해 유발되는 액션과 같은 "외부" 이벤트일 수 있으며,[1] 프로그램 차단은 결과를 대기하지 않습니다.비동기 입출력은 후자의 비동기 사례의 한 예이며, 프로세서가 프로그램을 계속 실행하는 동안 프로그램이 이러한 요청을 처리하는 스토리지 또는 네트워크 장치에 명령을 발행할 수 있습니다.그렇게 함으로써 어느 정도의 [1]병렬성을 얻을 수 있습니다.
프로그래밍 인터페이스에서 비동기 처리를 위한 일반적인 방법은 진행 중인 작업을 나타내는 미래 또는 약속을 반환하는 서브루틴과 미래 또는 약속이 완료될 때까지 차단하는 동기화 작업을 제공하는 것입니다.Cilk 등의 일부 프로그래밍 언어에는 비동기 프로시저 [2]콜을 표현하기 위한 특별한 구문이 있습니다.
비동기에는 다음과 같은 예가 있습니다.
- 비동기 프로시저 호출, 스레드 대신 프로시저를 동시에 실행하는 메서드입니다.
- Ajax는 에서 비동기 I/O 웹 애플리케이션을 작성하기 위해 사용되는 클라이언트 측 웹 테크놀로지 세트입니다.
- Asynchronous method dispatch(AMD; 비동기 방식 디스패치)는 서버 측에서 다수의 장시간 지속되는 클라이언트 [3]요구를 처리할 필요가 있을 때 사용되는 데이터 통신 방식입니다.Synchronous Method Dispatch(SMD; 동기식 디스패치)를 사용하면 서버가 사용 불가능한 비지 상태가 되어 네트워크 접속 요구 타임아웃에 의한 접속 장애 응답이 발생할 수 있습니다.클라이언트 요구 서비스는 스레드 풀에서 사용 가능한 스레드로 즉시 디스패치되며 클라이언트는 블로킹스테이트가 됩니다.작업이 완료되면 서버에 콜백이 통지됩니다.서버는 클라이언트를 차단 해제하고 응답을 클라이언트에 다시 전송합니다.스레드가 부족할 경우 클라이언트는 스레드를 사용할 수 있게 될 때까지 대기하며 차단됩니다.
「 」를 참조해 주세요.
레퍼런스
- ^ a b Davies, Alex (2012). Async in C# 5.0. O'Reilly. pp. 1–2.
- ^ McCool, Michael; Reinders, James; Robison, Arch (2013). Structured Parallel Programming: Patterns for Efficient Computation. Elsevier. p. 30.
- ^ AMD의 ICE 사용률.