Qt에서의 멀티스레딩
Qt는 플랫폼에 독립적인 스레드 클래스, 스레드 안전 방식의 이벤트 게시, 그리고 스레드 간 시그널-슬롯 연결을 통해 스레드 지원을 제공합니다. 이를 통해 이식성이 뛰어난 멀티스레드 Qt 애플리케이션을 쉽게 개발하고 멀티프로세서 시스템의 이점을 활용할 수 있습니다. 또한 멀티스레드 프로그래밍은 애플리케이션의 사용자 인터페이스가 멈추지 않도록 하면서도 시간이 오래 걸리는 작업을 수행하는 데 유용한 패러다임입니다.
이전 버전의 Qt에서는 스레드 지원 없이 라이브러리를 빌드할 수 있는 옵션이 제공되었습니다. Qt 4.0부터는 스레드가 항상 활성화되어 있습니다.
주제:
이 문서들은 독자가 멀티스레드 애플리케이션에 대한 기본 지식을 갖추고 있다고 가정합니다.
스레딩 클래스
이 클래스들은 스레드 기반 애플리케이션과 관련이 있습니다.
시퀀스에서 값을 선택하고 결합하는 작업을 모두 병렬로 수행 | |
시퀀스의 값을 변환하고 결합하는 작업을 모두 병렬로 수행 | |
별도의 스레드에서 작업을 실행하는 간단한 방법 | |
별도의 스레드에서 작업을 실행하는 구성 가능한 방법 | |
정수에 대한 플랫폼 독립적인 원자적 연산 | |
포인터에 대한 플랫폼 독립적인 원자적 연산을 제공하는 템플릿 클래스 | |
비동기 계산의 결과를 나타냅니다 | |
QFuture 동기화를 간소화하는 편의 클래스 | |
신호와 슬롯을 사용하여 QFuture를 모니터링할 수 있게 해줌 | |
스레드 간 시리얼라이제이션에 접근 | |
뮤텍스의 잠금 및 잠금 해제를 간소화하는 편의 클래스 | |
QFuture에서 액세스할 수 있도록 계산 결과를 저장하는 방법 | |
읽기 접근을 위한 읽기-쓰기 잠금의 잠금 및 잠금 해제를 간소화하는 편의 클래스 | |
읽기-쓰기 잠금 | |
스레드 간 액세스 직렬화 | |
실행 가능한 모든 객체의 기본 클래스 | |
일반 카운팅 세마포어 | |
QSemaphore::release() 호출을 예외 안전하게 연기 | |
플랫폼에 구애받지 않는 스레드 관리 방법 | |
QThread 모음을 관리합니다 | |
스레드별 데이터 저장소 | |
스레드 동기화를 위한 조건 변수 | |
쓰기 액세스를 위한 읽기-쓰기 잠금의 잠금 및 잠금 해제를 단순화하는 편의 클래스 | |
저수준 스레딩 프리미티브를 사용하지 않고도 멀티스레드 프로그램을 작성할 수 있게 해주는 고수준 API | |
작업 매개변수를 조정하는 데 사용됨 | |
QtFuture::WhenAnyResult는 QtFuture::whenAny()의 결과를 나타내는 데 사용됩니다 | |
참고: Qt의 스레딩 클래스는 Win32 및 pthreads와 같은 네이티브 스레딩 API를 사용하여 구현됩니다. 따라서 동일한 네이티브 API를 사용하는 스레드와 함께 사용할 수 있습니다.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.