이러한 맥락에서 "비동기"는 무엇을 의미합니까?

이러한 맥락에서 "비동기"는 무엇을 의미합니까?

나는 물었다얼마 전까지만 해도 인터럽트에 대한 "비동기"의 의미는 무엇이었습니까?. 이제 동일한 문제가 발생하지만 셸 명령을 실행하고 스레드를 취소하는 경우가 있습니다.

Bash 매뉴얼에서

명령이 제어 연산자에 의해 종료되면 &쉘은 명령을 실행합니다.비동기적으로서브쉘에서.

Abraham Silberschatz 등의 "운영 체제 개념"에서

취소할 스레드를 일반적으로 대상 스레드라고 합니다. 대상 스레드 취소는 두 가지 상황에서 발생할 수 있습니다.

  1. 비동기식제거하다. 하나의 스레드가 대상 스레드를 즉시 종료합니다.

  2. 취소가 연기되었습니다. 대상 스레드는 종료해야 하는지 여부를 주기적으로 확인하여 질서 있는 방식으로 자체 종료할 수 있는 기회를 제공합니다.

위의 두 경우에서 "비동기"가 무엇을 의미하는지 궁금합니다. 이 두 경우는 같은 의미인가요?

Google의 정의가 두 경우 모두에 적용되나요? :

형용사: 비동기

  1. (두 개 이상의 사물이나 사건) 존재하지 않거나 동시에 발생합니다.

  2. 컴퓨터, 통신

    어떤 형태의 컴퓨터 제어 타이밍 프로토콜에 속하거나 필요합니다.특정 작업지시(신호)를 받은 후 시작하십시오. 이전 작업완료되었다.

Google의 이 두 가지 정의는 다음과 같습니다.

  • "비동기" 연산자의 경우와 달리 &,

  • 스레드의 "비동기적" 취소와 관련이 없습니까?

두 번째 정의가 위의 두 경우 모두에 적용된다면 각 경우의 "특정 작업"과 "선행 작업"은 무엇입니까?

감사해요.

답변1

이 모든 경우에 "비동기"는 다른 의미를 갖습니다.

셸의 경우 &명령은 비동기식으로 실행됩니다. 즉, 명령이 시작되자마자 셸이 제어권을 되찾고 명령이 백그라운드에서 실행됩니다. 쉘은 다음 명령이 있는 경우 이를 처리하고, 없는 경우 사용자 또는 상위 프로세스에 제어권을 반환합니다.

스레드의 경우 비동기 취소는 취소된 스레드가 즉시 중지되는 것을 의미하며 일반적으로 스레드 외부에서만 제어되는 방식으로,취소 스레드에서. 나는 당신이 접한 정의에 익숙하지 않습니다. 나는 비동기 취소에 대해 설명하고 싶습니다.pthread_cancelPOSIX 함수 정의,취소 함수는 호출자에게 즉시 제어를 반환하고 취소는 대상 스레드에서 병렬로 발생하므로 취소는 비동기적입니다.

Google을 사용하여 찾은 첫 번째 정의에서 비동기식은 통신의 특성을 나타냅니다. 비동기식 통신은 당사자가 동시에 참석할 필요가 없을 때 발생합니다. 비동기 통신의 예로는 이메일이 있습니다.

Google을 사용하여 찾은 두 번째 정의는 콜백 기반 프로그래밍과 같은 비동기 프로그래밍을 참조하는 것 같습니다. 작업 순서를 프로그래밍 방식으로 정의하고 작업을 차단하는 대신 이벤트 및 이벤트가 발생할 때 수행되는 작업 순서를 설명합니다. 귀하가 인용한 비동기식 정의는 다른 작업 시퀀스가 ​​완료될 때 실행되는 일련의 작업을 참조하는 것 같습니다(참조:ListenableFuture설명구현). 웹사이트에서 일부 정보를 검색하여 일반적인 프로그래밍 스타일로 처리한다고 가정해 보세요. 유사한 접근 방식을 사용하여 curl웹사이트 데이터를 검색하고 완료될 때까지 기다린 다음 처리할 것입니다. 비동기식 스타일에서는 데이터로 수행할 작업을 설명한 다음 해당 설명을 사용하여 검색을 시작하고, 데이터를 사용할 수 있게 되면 다른 작업을 수행하는 동안 처리가 발생합니다. 여기서 "특정 작업"은 수행하려는 처리이고 "이전 작업"은 데이터 검색입니다.

관련 정보