Tutorial by Examples



#include <mutex> #include <condition_variable> class Semaphore { public: Semaphore (int count_ = 0) : count(count_) { } inline void notify( int tid ) { std::unique_lock<std::mutex> lock(mtx); count++; cout <...
다음 함수는 네 개의 스레드를 추가합니다. 3 개의 쓰레드는 세마포어를 경쟁하며, 세마포어는 1로 세팅됩니다. 느린 스레드는 notify_one() 호출하여 대기중인 스레드 중 하나가 계속 진행되도록합니다. 그 결과 s1 즉시 회전을 시작하여 세마포어의 사용 count 가 1 미만으로 유지됩니다. 다른 스레드는 notify ()가 호출 될 때까지 조건 변수를 차례로 기다립니다. int main() { Semaphore sem(1); thread s1([&]() { while(...

Page 1 of 1