
SyncEvent::reset 메서드는 SyncEvent 객체를 초기화하는 데 사용됩니다. 초기화 과정에서 현재 상태를 초기화하고, 동기화 상태를 초기화합니다.
SyncEvent 객체의 초기화는 다음과 같은 단계로 이루어집니다.
1. 현재 상태를 초기화합니다.
2. 동기화 상태를 초기화합니다.
이러한 초기화 과정을 통해 SyncEvent 객체는 이전 상태를 잊고, 새로운 동기화 상태를 가질 수 있습니다.
예를 들어, 다음과 같은 코드를 통해 reset 메서드의 동작 방식을 이해할 수 있습니다.
#hostingforum.kr
cpp
#include
#include
class SyncEvent {
public:
void reset() {
// 현재 상태 초기화
is_set_ = false;
// 동기화 상태 초기화
mutex_.unlock();
}
void set() {
// 동기화 상태 잠금
mutex_.lock();
is_set_ = true;
}
bool wait() {
// 동기화 상태 잠금
mutex_.lock();
// 현재 상태가 설정되지 않았을 때 대기
while (!is_set_) {
// 대기 중
std::this_thread::sleep_for(std::chrono::milliseconds(10));
}
// 현재 상태 초기화
is_set_ = false;
// 동기화 상태 잠금 해제
mutex_.unlock();
return true;
}
private:
bool is_set_;
std::mutex mutex_;
};
int main() {
SyncEvent event;
// 쓰레드 1: 동기화 상태 설정
std::thread thread1([&event]() {
event.set();
});
// 쓰레드 2: 동기화 상태 대기
std::thread thread2([&event]() {
event.wait();
});
// 쓰레드 1 종료
thread1.join();
// 쓰레드 2 종료
thread2.join();
// SyncEvent 객체 초기화
event.reset();
return 0;
}
이 예제 코드에서는 SyncEvent 클래스의 reset 메서드의 동작 방식을 이해할 수 있습니다. reset 메서드는 현재 상태를 초기화하고, 동기화 상태를 초기화합니다.
2025-08-16 02:03