이 페이지에서

Qt에서의 멀티스레딩

Qt는 플랫폼에 독립적인 스레드 클래스, 스레드 안전 방식의 이벤트 게시, 그리고 스레드 간 시그널-슬롯 연결을 통해 스레드 지원을 제공합니다. 이를 통해 이식성이 뛰어난 멀티스레드 Qt 애플리케이션을 쉽게 개발하고 멀티프로세서 시스템의 이점을 활용할 수 있습니다. 또한 멀티스레드 프로그래밍은 애플리케이션의 사용자 인터페이스가 멈추지 않도록 하면서도 시간이 오래 걸리는 작업을 수행하는 데 유용한 패러다임입니다.

이전 버전의 Qt에서는 스레드 지원 없이 라이브러리를 빌드할 수 있는 옵션이 제공되었습니다. Qt 4.0부터는 스레드가 항상 활성화되어 있습니다.

주제:

이 문서들은 독자가 멀티스레드 애플리케이션에 대한 기본 지식을 갖추고 있다고 가정합니다.

스레딩 클래스

이 클래스들은 스레드 기반 애플리케이션과 관련이 있습니다.

Concurrent Filter and Filter-Reduce

시퀀스에서 값을 선택하고 결합하는 작업을 모두 병렬로 수행

Concurrent Map and Map-Reduce

시퀀스의 값을 변환하고 결합하는 작업을 모두 병렬로 수행

Concurrent Run

별도의 스레드에서 작업을 실행하는 간단한 방법

Concurrent Task

별도의 스레드에서 작업을 실행하는 구성 가능한 방법

QAtomicInteger

정수에 대한 플랫폼 독립적인 원자적 연산

QAtomicPointer

포인터에 대한 플랫폼 독립적인 원자적 연산을 제공하는 템플릿 클래스

QFuture

비동기 계산의 결과를 나타냅니다

QFutureSynchronizer

QFuture 동기화를 간소화하는 편의 클래스

QFutureWatcher

신호와 슬롯을 사용하여 QFuture를 모니터링할 수 있게 해줌

QMutex

스레드 간 시리얼라이제이션에 접근

QMutexLocker

뮤텍스의 잠금 및 잠금 해제를 간소화하는 편의 클래스

QPromise

QFuture에서 액세스할 수 있도록 계산 결과를 저장하는 방법

QReadLocker

읽기 접근을 위한 읽기-쓰기 잠금의 잠금 및 잠금 해제를 간소화하는 편의 클래스

QReadWriteLock

읽기-쓰기 잠금

QRecursiveMutex

스레드 간 액세스 직렬화

QRunnable

실행 가능한 모든 객체의 기본 클래스

QSemaphore

일반 카운팅 세마포어

QSemaphoreReleaser

QSemaphore::release() 호출을 예외 안전하게 연기

QThread

플랫폼에 구애받지 않는 스레드 관리 방법

QThreadPool

QThread 모음을 관리합니다

QThreadStorage

스레드별 데이터 저장소

QWaitCondition

스레드 동기화를 위한 조건 변수

QWriteLocker

쓰기 액세스를 위한 읽기-쓰기 잠금의 잠금 및 잠금 해제를 단순화하는 편의 클래스

QtConcurrent

저수준 스레딩 프리미티브를 사용하지 않고도 멀티스레드 프로그램을 작성할 수 있게 해주는 고수준 API

QtConcurrent::QTaskBuilder

작업 매개변수를 조정하는 데 사용됨

QtFuture::WhenAnyResult

QtFuture::WhenAnyResult는 QtFuture::whenAny()의 결과를 나타내는 데 사용됩니다

QAtomicInteger::qYieldCpu()

참고: 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.