스레드 모델
활성 상태의 Run은 프레임워크 및 런타임 스레드에서 작업을 수행합니다. 애플리케이션은 이러한 스레드를 관리할 필요가 없지만, 자체 푸시, 풀, 콜백 및 종료 코드를 체계적으로 유지해야 합니다.
스레드 개요
일반적인 Run의 경우:
| 스레드 | 역할 | 소유자 |
|---|---|---|
| GStreamer 스트리밍 스레드 | 소스, 변환 및 싱크 경로를 통해 버퍼를 이동합니다. | GStreamer 런타임 |
| MLA 디스패처 스레드 | MLA 작업을 제출하고 완료를 수집합니다. | Neat 런타임 |
| EV74 / CVU 디스패처 스레드 | CVU 측 커널을 제출하고 완료를 확인합니다. | Neat 런타임 |
| 풀 측 대기 및 버스 감시자 | 출력 샘플을 공개 큐로 이동하고 런타임 오류를 보고합니다. | Neat 런타임 |
| 애플리케이션 스레드 | Graph.build(...), Graph.run(...), Run.push(...), Run.pull(...), Run.stop() 또는 콜백을 호출합니다. | 애플리케이션 |
그래프 조각, 소스 노드 및 싱크 노드는 런타임 작업을 추가할 수 있지만, 규칙은 동일하게 유지됩니다. 공개 Run은 애플리케이션이 제어하는 핸들입니다.