
parallelRuntime::run 함수는 여러 쓰레드가 동시에 작업을 수행할 수 있도록 도와줍니다. 각 쓰레드의 결과를 합치거나 관리하려면 다음과 같은 방법을 사용할 수 있습니다.
1. Future: C++20부터 제공하는 Future 클래스를 사용할 수 있습니다. Future는 쓰레드의 결과를 기다릴 수 있도록 도와줍니다. 예를 들어, 다음과 같이 쓰레드의 결과를 합칠 수 있습니다.
#hostingforum.kr
cpp
#include
std::future future1 = parallelRuntime::run([=]() { return 1 + 1; });
std::future future2 = parallelRuntime::run([=]() { return 2 + 2; });
int result = future1.get() + future2.get();
2. std::vector: 각 쓰레드의 결과를 std::vector에 저장할 수 있습니다. 예를 들어, 다음과 같이 쓰레드의 결과를 합칠 수 있습니다.
#hostingforum.kr
cpp
#include
std::vector results;
results.push_back(parallelRuntime::run([=]() { return 1 + 1; }));
results.push_back(parallelRuntime::run([=]() { return 2 + 2; }));
int result = 0;
for (int i : results) {
result += i;
}
3. std::mutex: 쓰레드의 결과를 동기화할 수 있습니다. 예를 들어, 다음과 같이 쓰레드의 결과를 합칠 수 있습니다.
#hostingforum.kr
cpp
#include
std::mutex mtx;
int result = 0;
parallelRuntime::run([&]() {
std::lock_guard lock(mtx);
result += 1 + 1;
});
parallelRuntime::run([&]() {
std::lock_guard lock(mtx);
result += 2 + 2;
});
4. std::atomic: 쓰레드의 결과를 원자적으로 관리할 수 있습니다. 예를 들어, 다음과 같이 쓰레드의 결과를 합칠 수 있습니다.
#hostingforum.kr
cpp
#include
std::atomic result(0);
parallelRuntime::run([&]() {
result.fetch_add(1 + 1);
});
parallelRuntime::run([&]() {
result.fetch_add(2 + 2);
});
이러한 방법 중 하나를 사용하여 쓰레드의 결과를 합치거나 관리할 수 있습니다.
2025-08-02 22:21