동기 및 비동기는 NI-VISA 함수가 호출 스레드와 관련해서 어떻게 동작하는지를 나타내는 용어입니다. NI-VISA 함수를 동기적으로 실행하는 경우 호출 스레드에서 다른 코드를 실행할 수 없습니다. 많은 양의 데이터를 전송하거나 가능한 한 빨리 디바이스에서 데이터를 가져오거나 전달해야 하는 경우와 같은 일부 상황에서는 이 동작이 바람직할 수 있습니다.
하위 레벨에서는 인터페이스가 동기인지 비동기인지에 따라 호출 스레드가 잠기는 시간이 달라집니다. 쓰기 작업의 경우 ADE (Application Development Environment)에서 컴퓨터가 제공하는 기본 물리적 리소스로 데이터를 전송하십시오. 읽기 작업의 경우 디바이스의 물리적 리소스에서 ADE로 데이터를 전송하십시오. 이러한 전송은 모두 여러 계층의 메모리를 통과해야 합니다.
쓰기 작업의 경우 다음 시퀀스가 발생합니다.
읽기 작업의 경우 동일한 시퀀스가 발생하지만 순서가 반대입니다.
동기 작업의 경우 위의 4단계와 5단계 사이에 호출 스레드가 잠금 해제됩니다. 비동기 작업의 경우 위의 2단계와 3단계 사이에 호출 스레드가 잠금 해제됩니다. 어플리케이션을 위해 동기 및 비동기 중에서 선택하려면 쓰거나 읽는 데이터의 양과 어플리케이션에서 사용할 수 있는 스레드 수를 고려해야 합니다.
많은 양의 데이터를 가능한 한 짧은 시간 내에 전송해야 하는 경우 작업을 동기적으로 수행하는 것이 좋습니다. 이렇게 하면 호출 스레드가 하드웨어 리소스로 데이터를 전송하거나 하드웨어 리소스에서 전송하는 작업만 수행하기 때문입니다. 작업을 비동기적으로 실행하는 경우 호출 스레드가 어플리케이션의 다른 부분에 액세스할 수 있지만, 데이터가 하드웨어 리소스로 전송되었거나 하드웨어 리소스에서 전송되었는지 확인하는 데 더 오랜 시간이 걸립니다.
어플리케이션에서 사용할 수 있는 스레드 수가 병렬 프로세스 수에 비해 적을 경우 NI-VISA 작업을 비동기로 실행하면 어플리케이션의 다른 부분에서 호출 스레드를 더 빨리 사용할 수 있습니다. 작업을 동기적으로 실행하는 경우 호출 스레드가 NI-VISA 작업만 수행하기 때문에 가능한 한 빨리 작업이 완료되지만, 전반적인 어플리케이션 성능은 저하됩니다.
LabVIEW에서 동기 함수와 비동기 함수 중 하나를 선택하려면 아래의 LabVIEW 도움말 링크를 참조하십시오.