다음을 통해 공유


동시성 런타임

C++용 동시성 런타임은 강력하고 확장 가능하며 응답성이 높은 병렬 응용 프로그램을 작성하는 데 도움이 됩니다. 이는 동시성과 관련된 인프라 세부 정보를 관리할 필요가 없도록 추상화 수준을 높입니다. 또한 이러한 동시성 런타임을 사용하여 응용 프로그램의 서비스 품질 요구 사항을 충족하는 일정 예약 정책을 지정할 수도 있습니다. 다음 리소스는 동시성 런타임 작업을 시작하는 데 도움이 됩니다.

참조 설명서는 참조(동시성 런타임)를 참조하세요.

동시성 런타임은 C++11 기능에 크게 의존하며 보다 최신 C++ 스타일을 채택합니다.자세한 내용은 C++의 진화(최신 C++)를 참조하세요.

동시성 런타임 기능 선택

동시성 런타임 개요

동시성 런타임이 중요한 이유와 해당 핵심 기능을 설명합니다.

동시성 런타임과 기타 동시성 모델 비교

응용 프로그램 요구 사항에 가장 잘 맞는 동시성 모델을 사용할 수 있도록 동시성 런타임과 Windows 스레드 풀, OpenMP 등의 기타 동시성 모델을 비교하는 방법을 보여 줍니다.

OpenMP에서 동시성 런타임으로 마이그레이션

OpenMP와 동시성 런타임을 비교하고 기존 OpenMP 코드를 동시성 런타임을 사용하도록 마이그레이션하는 방법에 대한 예제를 제공합니다.

PPL(병렬 패턴 라이브러리)

병렬 루프, 작업 및 병렬 컨테이너를 제공하는 PPL을 소개합니다.

비동기 에이전트 라이브러리

비동기 에이전트 및 메시지 전달을 사용하여 데이터 흐름 및 파이프라이닝 작업을 응용 프로그램에 쉽게 통합하는 방법을 소개합니다.

작업 스케줄러(동시성 런타임)

동시성 런타임을 사용하는 데스크톱 앱의 성능을 미세 조정할 수 있게 해주는 작업 스케줄러를 소개합니다.

PPL에서 작업 병렬 처리

작업 병렬 처리(동시성 런타임)

방법: parallel_invoke를 사용하여 병렬 정렬 루틴 작성

방법: parallel_invoke를 사용하여 병렬 작업 실행

방법: 지연 후 완료되는 작업 만들기

비동기 코드를 작성하고 병렬 작업을 더 작은 부분으로 분해하는 데 도움이 되는 작업 및 작업 그룹을 설명합니다.

연습: 미래 구현

동시성 런타임 기능을 결합하여 더 많은 작업을 수행하는 방법을 보여 줍니다.

연습: 사용자 인터페이스 스레드에서 작업 제거

MFC 응용 프로그램의 UI 스레드에서 수행하는 작업을 작업자 스레드로 이동하는 방법을 보여 줍니다.

병렬 패턴 라이브러리의 유용한 정보

동시성 런타임의 유용한 일반 정보

PPL 사용에 대한 팁과 유용한 정보를 제공합니다.

PPL에서 데이터 병렬 처리

병렬 알고리즘

방법: parallel_for 루프 작성

방법: parallel_for_each 루프 작성

방법: 매핑 수행 및 병렬 작업 줄이기

parallel_for, parallel_for_each, parallel_invoke 및 기타 병렬 알고리즘을 설명합니다. 데이터 컬렉션이 관련된 데이터 병렬 문제를 해결하려면 병렬 알고리즘을 사용합니다.

병렬 컨테이너 및 개체

방법: 병렬 컨테이너를 사용하여 효율성 향상

방법: combinable을 사용하여 성능 개선

방법: combinable을 사용하여 집합 결합

combinable 클래스와 concurrent_vector, concurrent_queue, concurrent_unordered_map 및 기타 병렬 컨테이너를 설명합니다. 해당 요소에 스레드로부터 안전한 액세스를 제공하는 컨테이너가 필요한 경우 병렬 컨테이너 및 개체를 사용합니다.

병렬 패턴 라이브러리의 유용한 정보

동시성 런타임의 유용한 일반 정보

PPL 사용에 대한 팁과 유용한 정보를 제공합니다.

작업 및 병렬 알고리즘 취소

PPL에서의 취소

취소 요청을 시작하고 취소 요청에 응답하는 방법을 비롯한 PPL에서의 취소 역할을 설명합니다.

방법: 취소를 사용하여 병렬 루프 중단

방법: 예외 처리를 사용하여 병렬 루프 중단

데이터 병렬 작업을 취소하는 두 가지 방법을 보여 줍니다.

Windows 스토어 앱

C++로 Windows 스토어 앱용 비동기 작업 만들기

Windows 스토어 앱에서 동시성 런타임을 사용하여 비동기 작업을 생성하는 경우 주의해야 할 주요 사항 중 몇 가지를 설명합니다.

연습: 작업 및 XML HTTP 요청을 사용하여 연결

IXMLHTTPRequest2IXMLHTTPRequest2Callback 인터페이스를 PPL 작업과 함께 사용하여 HTTP GET 및 POST 요청을 Windows 스토어 앱의 웹 서비스에 보내는 방법을 보여 줍니다.

Windows 스토어 앱 샘플

Windows 8용 다운로드 가능한 코드 샘플 및 데모 앱이 포함되어 있습니다. C++ 샘플에서는 백그라운드에서 데이터를 처리하여 UX 응답성을 유지하기 위한 PPL 작업 같은 동시성 런타임 기능을 사용합니다.

비동기 에이전트 라이브러리의 데이터 흐름 프로그래밍

비동기 에이전트

비동기 메시지 블록

메시지 전달 함수

방법: 다양한 공급자/소비자 패턴 구현

방법: call 및 transformer 클래스에 작업 함수 제공

방법: 데이터 파이프라인에서 transformer 사용

방법: 완료된 작업 간 선택

방법: 정기적으로 메시지 보내기

방법: 메시지 블록 필터 사용

동시성 런타임에서 데이터 흐름 작업을 수행하기 위한 구성 요소인 비동기 에이전트, 메시지 블록 및 메시지 전달 함수를 설명합니다.

연습: 에이전트 기반 응용 프로그램 만들기

연습: 사용자 지정 데이터 흐름 에이전트 만들기

기본 에이전트 기반 응용 프로그램을 만드는 방법을 보여 줍니다.

연습: 이미지 처리 네트워크 만들기

이미지 처리를 수행하는 비동기 메시지 블록의 네트워크를 만드는 방법을 보여 줍니다.

연습: join을 사용하여 교착 상태 방지

동시성 런타임을 사용하여 응용 프로그램의 교착 상태를 방지하는 방법을 보여 주기 위해 철학자들의 만찬 문제(Dining Philosophers Problem)를 활용합니다.

연습: 사용자 지정 메시지 블록 만들기

들어오는 메시지를 우선 순위별로 정렬하는 사용자 지정 메시지 블록 형식을 만드는 방법을 보여 줍니다.

비동기 에이전트 라이브러리의 유용한 정보

동시성 런타임의 유용한 일반 정보

에이전트 사용에 대한 팁과 유용한 정보를 제공합니다.

예외 처리 및 디버깅

동시성 런타임에서 예외 처리

동시성 런타임에서 예외를 사용하는 방법을 설명합니다.

병렬 진단 도구(동시성 런타임)

응용 프로그램을 미세 조정하고 동시성 런타임을 가장 효과적으로 사용하는 방법을 보여 줍니다.

성능 조정

병렬 진단 도구(동시성 런타임)

응용 프로그램을 미세 조정하고 동시성 런타임을 가장 효과적으로 사용하는 방법을 보여 줍니다.

스케줄러 인스턴스

방법: 스케줄러 인스턴스 관리

스케줄러 정책

방법: 특정 스케줄러 정책 지정

방법: 특정 스케줄러 정책을 사용하는 에이전트 만들기

스케줄러 인스턴스 및 스케줄러 정책을 관리하는 방법을 보여 줍니다. 데스크톱 앱의 경우 스케줄러 정책을 사용하면 특정 유형의 작업을 특정 규칙과 연결할 수 있습니다. 예를 들어 높은 스레드 우선 순위로 일부 작업을 실행하기 위한 스케줄러 인스턴스를 하나 만들고, 기본 스케줄러를 사용하여 보통 스레드 우선 순위로 다른 작업을 실행할 수 있습니다.

일정 그룹

방법: 실행 순서에 영향을 주는 일정 그룹 사용

일정 그룹을 사용하여 관련 작업을 함께 선호도를 설정하거나 그룹화하는 방법을 보여 줍니다. 예를 들어 동일한 프로세서 노드에서 관련 작업을 실행하는 이점이 있는 경우 해당 작업 간에 높은 수준의 국부성이 필요할 수 있습니다.

간단한 작업

간단한 작업이 어떻게 부하 분산 또는 취소가 불필요한 작업을 만드는 데 유용한지 그리고 동시성 런타임과 함께 사용하는 데 적절하도록 기존 코드를 변경하는 데 유용한지를 설명합니다.

컨텍스트

방법: 컨텍스트 클래스를 사용하여 공동 작업 세마포 구현

방법: 초과 구독을 사용하여 대기 오프셋

동시성 런타임에서 관리하는 스레드의 동작을 제어하는 방법을 설명합니다.

메모리 관리 함수

방법: Alloc 및 Free를 사용하여 메모리 성능 개선

동시성 런타임에서 메모리 할당과 해제를 동시에 수행할 수 있도록 제공하는 메모리 관리 함수를 설명합니다.

추가 리소스

Hilo의 비동기 프로그래밍 패턴 및 팁(C++ 및 XAML을 사용하는 Windows 스토어 앱)

C++ 및 XAML을 사용하는 Windows 스토어 앱인 Hilo에서 동시성 런타임을 사용하여 비동기 작업을 구현한 방법을 알아봅니다.

Visual Studio 2010의 동시성 런타임 및 병렬 패턴 라이브러리에 대한 코드 샘플

동시성 런타임을 보여 주는 샘플 응용 프로그램 및 유틸리티를 제공합니다.

네이티브 코드의 병렬 프로그래밍 블로그(영문)

동시성 런타임의 병렬 프로그래밍에 대한 자세한 추가 블로그 기사를 제공합니다.

C++ 및 네이티브 코드의 병렬 컴퓨팅 포럼

동시성 런타임에 대한 커뮤니티 토론에 참여할 수 있습니다.

.NET Framework의 병렬 프로그래밍

.NET Framework에서 사용할 수 있는 병렬 프로그래밍 모델에 대해 알려 줍니다.

참고 항목

기타 리소스

참조(동시성 런타임)