boost library 에서 mutex 와 recursive_mutex 의 차이점?
글쓴이: zelon / 작성시간: 화, 2005/01/11 - 4:37오후
mutex 는 하나의 쓰레드에서 같은 mutex object 에 lock 을 걸 때 deadlock 에 걸리고, recursive_mutex 는 안 걸린다고 하는데,
실제로 mutex 로 연속으로 같은 객체에 lock 을 걸어보니, deadlock 상태에 들어가지 않고, 그냥 통과됩니다.
대체 이 둘은 뭐가 다른건가요?
#include <boost/thread/mutex.hpp> #include <iostream> using namespace std; int main() { boost::mutex lockObj; boost::mutex::scoped_lock a(lockObj); // 여기서 deadlock 상태에 들어갈것으로 예상..... boost::mutex::scoped_lock b(lockObj); std::cout << "end" << endl; return 0; }
Forums:
boost는 잘 모르는데... 혹시
혹시
부분이 copy constructor 아닌가요?
해서 lockObj의 내용을 그대로 사용하는게 아니라 카피가 되는 듯한데요.
일반적으로 대부분의 라이브러리는 copy constructor가 일일이 다 구현된 걸로 알고 있습니다만....
댓글 달기