728x90
yeild
-
C++, Sleep을 이용한 Lock구현C++/C++ 멀티스레드 2022. 10. 10. 11:52
이전 포스팅에서는 spinlock을 구현해봤다. spinlock은 lock을 얻기위해서, 기한없는 대기를 하는 방법이다. https://bethetitan.tistory.com/9 C++ SpinLock구현 SpinLock은 앞선 포스팅에서 말한 존버메타 lock이다. 즉, lock을 다른 스레드가 사용중이면, 그 앞에서 lock이 풀릴때까지 계속 기다리는 것이다. 이거를 한 번 구현해보자. 들어가기에 앞서, 멀티스 bethetitan.tistory.com spinlock을 이용할 경우, CPU를 더 효율적인 곳에 사용하지 못하고, 가만히 놀게 하는 것과 다름없으므로, lock을 가진, thread가 lock을 빨리 해제하지 않는 경우에는 비효율적이라는 단점이 있다. 그래서 오늘은 lock이 잠겨있다면,..