Files
hustoj/web/cppreference-zh/chmhelp/cpp-named_req-timedmutex.html
2025-08-01 12:57:54 +08:00

87 lines
10 KiB
HTML

<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>C++ &#20855;&#21517;&#35201;&#27714;&#65306;&#23450;&#26102;&#20114;&#26021;&#20307; (TimedMutex)</title>
<link rel="stylesheet" href="ext.css" />
<link rel="stylesheet" href="site_modules.css" />
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_named_req_TimedMutex skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">C++ &#20855;&#21517;&#35201;&#27714;&#65306;</span><span style="font-style:italic">&#23450;&#26102;&#20114;&#26021;&#20307;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(TimedMutex)</span></h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-named_req.html">named req</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<p><strong class="selflink"><span style="font-style:italic">&#23450;&#26102;&#20114;&#26021;&#20307;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(TimedMutex)</span></strong> &#35201;&#27714;&#25193;&#23637;<a href="cpp-named_req-TimedLockable.html"><span style="font-style:italic">&#21487;&#23450;&#26102;&#38145;&#23450;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(TimedLockable)</span></a> &#35201;&#27714;&#65292;&#20197;&#21253;&#21547;&#32447;&#31243;&#38388;&#21516;&#27493;&#12290;</p>
<h3><span class="mw-headline" id=".E8.A6.81.E6.B1.82">&#35201;&#27714;</span></h3>
<ul>
<li><a href="cpp-named_req-TimedLockable.html"><span style="font-style:italic">&#21487;&#23450;&#26102;&#38145;&#23450;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(TimedLockable)</span></a></li>
<li><a href="cpp-named_req-Mutex.html"><span style="font-style:italic">&#20114;&#26021;&#20307;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Mutex)</span></a></li>
</ul>
<p>&#21478;&#22806;&#65292;&#23545;&#20110;<span style="font-style:italic">&#23450;&#26102;&#20114;&#26021;&#20307;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(TimedMutex)</span> &#31867;&#22411;&#23545;&#35937; <code><b>m</b></code> &#12290;</p>
<ul>
<li>&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">m.<span class="me1">try_lock_for</span><span class="br0">(</span>duration<span class="br0">)</span></span></span> &#25317;&#26377;&#19979;&#21015;&#23646;&#24615;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#34920;&#29616;&#20026;&#21407;&#23376;&#25805;&#20316;&#12290;</li>
<li>&#35797;&#22270;&#22312; <code>duration</code> &#25152;&#25351;&#23450;&#30340;&#26102;&#38271;&#20869;&#33719;&#24471;&#20114;&#26021;&#30340;&#25490;&#20182;&#24615;&#25152;&#26377;&#26435;&#12290;&#33509; <code>duration</code> &#23567;&#20110;&#25110;&#31561;&#20110; <code>duration.zero()</code> &#65292;&#21017;&#35797;&#22270;&#33719;&#24471;&#25152;&#26377;&#26435;&#32780;&#19981;&#38459;&#22622;&#65288;&#22914;&#21516;&#29992; <code>try_lock()</code> &#65289;&#12290;&#21542;&#21017;&#65292;&#27492;&#20989;&#25968;&#23558;&#38459;&#22622;&#30452;&#33267;&#24471;&#21040;&#20114;&#26021;&#65292;&#25110;&#30452;&#33267;&#32463;&#36807; <code>duration</code> &#25152;&#25351;&#23450;&#30340;&#26102;&#38271;&#12290;&#23427;&#20165;&#33509;&#25104;&#21151;&#25165;&#22312; <code>duration</code> &#20869;&#36820;&#22238;&#65292;&#20294;&#20801;&#35768;&#33719;&#24471;&#20114;&#26021;&#22833;&#36133;&#65292;&#21363;&#20351;&#22312; <code>duration</code> &#26399;&#38388;&#30340;&#26576;&#28857;&#65292;&#20114;&#26021;&#19981;&#20026;&#21478;&#19968;&#32447;&#31243;&#25152;&#21344;&#26377;&#12290;&#20219;&#20309;&#24773;&#20917;&#19979;&#65292;&#33509;&#24471;&#21040;&#20114;&#26021;&#21017;&#36820;&#22238; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span> &#65292;&#21542;&#21017;&#36820;&#22238; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">false</span></span></span> &#12290;</li>
<li>&#33509; <code>try_lock_for(duration)</code> &#25104;&#21151;&#65292;&#21017;&#21516;&#19968;&#23545;&#35937;&#19978;&#20808;&#21069;&#30340; <code>unlock()</code> &#25805;&#20316;<i>&#21516;&#27493;&#20110;</i>&#27492;&#25805;&#20316;&#65288;&#31561;&#20215;&#20110;&#37322;&#25918;&#33719;&#24471;&#20869;&#23384;&#39034;&#24207; (<span class="t-lc"><a href="cpp-atomic-memory_order.html">std::memory_order</a></span>) &#65289;&#12290;</li>
<li>&#33509;&#35843;&#29992;&#26041;&#32447;&#31243;&#24050;&#21344;&#26377;&#20114;&#26021;&#65292;&#21017;&#34892;&#20026;&#26410;&#23450;&#20041;&#65288;&#38500;&#38750; m &#26159; <span class="t-lc"><a href="cpp-thread-recursive_timed_mutex.html">std::recursive_timed_mutex</a></span> &#65289;&#12290;</li>
<li>&#25191;&#34892;&#26399;&#38388;&#26102;&#38047;&#12289;&#26102;&#38388;&#28857;&#25110;&#26102;&#38271;&#21487;&#33021;&#25243;&#20986;&#24322;&#24120;&#65288;&#26631;&#20934;&#24211;&#25552;&#20379;&#30340;&#26102;&#38047;&#12289;&#26102;&#38388;&#28857;&#21450;&#26102;&#38271;&#20915;&#19981;&#25243;&#20986;&#65289;&#12290;</li>
</ul>
</dd>
</dl>
<ul>
<li>&#34920;&#36798;&#24335; <span class="t-c"><span class="mw-geshi cpp source-cpp">m.<span class="me1">try_lock_until</span><span class="br0">(</span>time_point<span class="br0">)</span></span></span> &#25317;&#26377;&#19979;&#21015;&#23646;&#24615;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#34920;&#29616;&#20026;&#21407;&#23376;&#25805;&#20316;&#12290;</li>
<li>&#35797;&#22270;&#22312;&#21040; <code>time_point</code> &#20026;&#27490;&#30340;&#21097;&#20313;&#26102;&#38388;&#20869;&#33719;&#24471;&#20114;&#26021;&#30340;&#25490;&#20182;&#24615;&#25152;&#26377;&#26435;&#12290;&#33509;&#24050;&#32463;&#36807; <code>time_point</code> &#65292;&#21017;&#35797;&#22270;&#33719;&#24471;&#25152;&#26377;&#26435;&#32780;&#19981;&#38459;&#22622;&#65288;&#22914;&#21516;&#29992; <code>try_lock()</code> &#65289;&#12290;&#21542;&#21017;&#65292;&#27492;&#20989;&#25968;&#23558;&#38459;&#22622;&#30452;&#33267;&#24471;&#21040;&#20114;&#26021;&#65292;&#25110;&#30452;&#33267;&#32463;&#36807; <code>time_point</code> &#25152;&#25351;&#23450;&#30340;&#26102;&#38388;&#28857;&#12290;&#23427;&#20165;&#33509;&#25104;&#21151;&#25165;&#22312; <code>time_point</code> &#21069;&#36820;&#22238;&#65292;&#20294;&#20801;&#35768;&#33719;&#24471;&#20114;&#26021;&#22833;&#36133;&#65292;&#21363;&#20351;&#22312; <code>time_point</code> &#21069;&#30340;&#26576;&#28857;&#65292;&#20114;&#26021;&#19981;&#20026;&#21478;&#19968;&#32447;&#31243;&#25152;&#21344;&#26377;&#12290;&#20219;&#20309;&#24773;&#20917;&#19979;&#65292;&#33509;&#24471;&#21040;&#20114;&#26021;&#21017;&#36820;&#22238; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span> &#65292;&#21542;&#21017;&#36820;&#22238; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">false</span></span></span> &#12290;</li>
<li>&#33509; <code>try_lock_until(time_point)</code> &#25104;&#21151;&#65292;&#21017;&#21516;&#19968;&#23545;&#35937;&#19978;&#20808;&#21069;&#30340; <code>unlock()</code> &#25805;&#20316;<i>&#21516;&#27493;&#20110;</i>&#27492;&#25805;&#20316;&#65288;&#31561;&#20215;&#20110;&#37322;&#25918;&#33719;&#24471;&#20869;&#23384;&#39034;&#24207; (<span class="t-lc"><a href="cpp-atomic-memory_order.html">std::memory_order</a></span>) &#65289;&#12290;</li>
<li>&#33509;&#35843;&#29992;&#26041;&#32447;&#31243;&#24050;&#21344;&#26377;&#20114;&#26021;&#65292;&#21017;&#34892;&#20026;&#26410;&#23450;&#20041;&#65288;&#38500;&#38750; m &#26159; <span class="t-lc"><a href="cpp-thread-recursive_timed_mutex.html">std::recursive_timed_mutex</a></span> &#65289;&#12290;</li>
<li>&#25191;&#34892;&#26399;&#38388;&#26102;&#38047;&#12289;&#26102;&#38388;&#28857;&#25110;&#26102;&#38271;&#21487;&#33021;&#25243;&#20986;&#24322;&#24120;&#65288;&#26631;&#20934;&#24211;&#25552;&#20379;&#30340;&#26102;&#38047;&#12289;&#26102;&#38388;&#28857;&#21450;&#26102;&#38271;&#20915;&#19981;&#25243;&#20986;&#65289;&#12290;</li>
</ul>
</dd>
</dl>
<h3><span class="mw-headline" id=".E5.BA.93.E7.B1.BB.E5.9E.8B">&#24211;&#31867;&#22411;</span></h3>
<p>&#19979;&#21015;&#26631;&#20934;&#24211;&#31867;&#22411;&#28385;&#36275;<strong class="selflink"><span style="font-style:italic">&#23450;&#26102;&#20114;&#26021;&#20307;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(TimedMutex)</span></strong> &#65306;</p>
<ul>
<li><span class="t-lc"><a href="cpp-thread-timed_mutex.html">std::timed_mutex</a></span></li>
<li><span class="t-lc"><a href="cpp-thread-recursive_timed_mutex.html">std::recursive_timed_mutex</a></span></li>
<li><span class="t-lc"><a href="cpp-thread-shared_timed_mutex.html">std::shared_timed_mutex</a></span></li>
</ul>
<h3><span class="mw-headline" id=".E7.BC.BA.E9.99.B7.E6.8A.A5.E5.91.8A">&#32570;&#38519;&#25253;&#21578;</span></h3>
<p>&#19979;&#21015;&#26356;&#25913;&#34892;&#20026;&#30340;&#32570;&#38519;&#25253;&#21578;&#36861;&#28335;&#22320;&#24212;&#29992;&#20110;&#20197;&#21069;&#20986;&#29256;&#30340; C++ &#26631;&#20934;&#12290;</p>
<table class="dsctable" style="font-size:0.8em">
<tr>
<th>DR</th>
<th>&#24212;&#29992;&#20110;</th>
<th>&#20986;&#29256;&#26102;&#30340;&#34892;&#20026;</th>
<th>&#27491;&#30830;&#34892;&#20026;</th>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://cplusplus.github.io/LWG/issue2093">LWG 2093</a></td>
<td>C++11</td>
<td>&#35268;&#33539;&#20013;&#32570;&#22833;&#36229;&#26102;&#30456;&#20851;&#24322;&#24120;</td>
<td>&#24050;&#25552;&#21450;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<ul>
<li><a href="cpp-thread.html">&#32447;&#31243;&#25903;&#25345;&#24211;</a></li>
<li><a href="cpp-named_req-TimedLockable.html"><span style="font-style:italic">&#21487;&#23450;&#26102;&#38145;&#23450;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(TimedLockable)</span></a></li>
<li><a href="cpp-named_req-Mutex.html"><span style="font-style:italic">&#20114;&#26021;&#20307;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Mutex)</span></a></li>
</ul>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>