Difference between boost::unique_lock and boost::upgrade_lock?
<p>I am new to threading concept in C++ . I Just wanted to know few things: <strong>How is a <code>boost::unique_lock</code> different from <code>boost::upgrade_lock</code>?</strong></p>

<p>How actually an exclusive ownership differ from upgrade ownership. </p>

<p>Maybe one can say exclusive ownership is thread safe but not upgrade ownership,
       in that case i would like to know how can an upgrade ownership can be harmful if 
       it can be? I want to know what is that <code>upgrade_lock</code> allows or not allows that 
       <code>unique_lock</code> does except exclusive lock thing. Not providing exclusive lock by 
       <code>upgrade_lock</code> makes it similar to <code>shared_lock</code> or what and if so then how is it 
       different from <code>shared_lock</code>?</p>
