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

244 lines
21 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>std::scoped_lock</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_thread_scoped_lock 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%">std::</span>scoped_lock</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-thread.html">thread</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<table class="t-dcl-begin">
<tbody>
<tr class="t-dsc-header">
<td>
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="cpp-header-mutex.html">&lt;mutex&gt;</a></code></div>
</td>
<td></td>
<td></td>
</tr>
<tr class="t-dcl t-since-cxx17">
<td>
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">template</span><span class="sy1">&lt;</span> <span class="kw1">class</span>... <span class="me1">MutexTypes</span> <span class="sy1">&gt;</span><br />
<span class="kw1">class</span> scoped_lock<span class="sy4">;</span></span></div>
</td>
<td class="t-dcl-nopad"></td>
<td><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&#31867; <code>scoped_lock</code> &#26159;&#25552;&#20379;&#20415;&#21033; <a href="https://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization" class="extiw" title="enwiki:Resource Acquisition Is Initialization">RAII &#39118;&#26684;</a>&#26426;&#21046;&#30340;&#20114;&#26021;&#21253;&#35013;&#22120;&#65292;&#23427;&#22312;&#20316;&#29992;&#22495;&#22359;&#30340;&#23384;&#22312;&#26399;&#38388;&#21344;&#26377;&#19968;&#25110;&#22810;&#20010;&#20114;&#26021;&#12290;</p>
<p>&#21019;&#24314; <code>scoped_lock</code> &#23545;&#35937;&#26102;&#65292;&#23427;&#35797;&#22270;&#21462;&#24471;&#32473;&#23450;&#20114;&#26021;&#30340;&#25152;&#26377;&#26435;&#12290;&#25511;&#21046;&#31163;&#24320;&#21019;&#24314; <code>scoped_lock</code> &#23545;&#35937;&#30340;&#20316;&#29992;&#22495;&#26102;&#65292;&#26512;&#26500; <code>scoped_lock</code> &#24182;&#37322;&#25918;&#20114;&#26021;&#12290;&#33509;&#32473;&#20986;&#25968;&#20010;&#20114;&#26021;&#65292;&#21017;&#20351;&#29992;&#20813;&#27515;&#38145;&#31639;&#27861;&#65292;&#22914;&#21516;&#20197; <span class="t-lc"><a href="cpp-thread-lock.html">std::lock</a></span> &#12290;</p>
<p><code>scoped_lock</code> &#31867;&#19981;&#21487;&#22797;&#21046;&#12290;</p>
<h3><span class="mw-headline" id=".E6.A8.A1.E6.9D.BF.E5.BD.A2.E5.8F.82">&#27169;&#26495;&#24418;&#21442;</span></h3>
<table class="t-par-begin">
<tr class="t-par">
<td>MutexTypes</td>
<td>-</td>
<td>&#35201;&#38145;&#23450;&#30340;&#20114;&#26021;&#31867;&#22411;&#12290;&#31867;&#22411;&#24517;&#39035;&#28385;&#36275;<a href="cpp-named_req-Lockable.html"><span style="font-style:italic">&#21487;&#38145;&#23450;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(Lockable)</span></a> &#35201;&#27714;&#65292;&#38500;&#38750; <span class="t-c"><span class="mw-geshi cpp source-cpp">sizeof...<span class="br0">(</span>MutexTypes<span class="br0">)</span><span class="sy1">==</span><span class="nu0">1</span></span></span> &#65292;&#35813;&#24773;&#20917;&#19979;&#21807;&#19968;&#30340;&#31867;&#22411;&#24517;&#39035;&#28385;&#36275;<a href="cpp-named_req-BasicLockable.html"><span style="font-style:italic">&#22522;&#26412;&#21487;&#38145;&#23450;</span> <span style="font-family: Georgia, &#39;DejaVu Serif&#39;, serif; font-style:italic">(BasicLockable)</span></a></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E7.B1.BB.E5.9E.8B">&#25104;&#21592;&#31867;&#22411;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc-hitem">
<td>&#25104;&#21592;&#31867;&#22411;</td>
<td>&#23450;&#20041;</td>
</tr>
<tr class="t-dsc">
<td><code>mutex_type</code> <span class="t-mark">(&#33509; <code>sizeof...(MutexTypes)==1</code>)</span></td>
<td><code>Mutex</code> &#65292; <code>MutexTypes...</code> &#20013;&#30340;&#21333;&#29420;&#31867;&#22411;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E5.87.BD.E6.95.B0">&#25104;&#21592;&#20989;&#25968;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div t-dsc-member-nobold-div">
<div><a href="cpp-thread-scoped_lock-scoped_lock.html"><span class="t-lines"><span>(&#26500;&#36896;&#20989;&#25968;)</span></span></a></div>
</div>
</td>
<td>&#26500;&#36896; scoped_lock &#65292;&#21487;&#36873;&#22320;&#38145;&#23450;&#32473;&#23450;&#30340;&#20114;&#26021;<br />
<span class="t-mark">(&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div t-dsc-member-nobold-div">
<div><a href="cpp-thread-scoped_lock-~scoped_lock.html"><span class="t-lines"><span>(&#26512;&#26500;&#20989;&#25968;)</span></span></a></div>
</div>
</td>
<td>&#26512;&#26500; scoped_lock &#23545;&#35937;&#65292;&#35299;&#38145;&#24213;&#23618;&#20114;&#26021;<br />
<span class="t-mark">(&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>operator=</span></span></div>
<div><span class="t-lines"><span><span class="t-cmark">[&#34987;&#21024;&#38500;]</span></span></span></div>
</div>
</td>
<td>&#19981;&#21487;&#22797;&#21046;<br />
<span class="t-mark">(&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<div class="t-example">
<p>&#20197;&#19979;&#31034;&#20363;&#29992; <code>std::scoped_lock</code> &#38145;&#23450;&#20114;&#26021;&#23545;&#32780;&#19981;&#27515;&#38145;&#65292;&#19988;&#20026; RAII &#39118;&#26684;&#12290;</p>
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;mutex&gt;</span>
<span class="co2">#include &lt;thread&gt;</span>
<span class="co2">#include &lt;iostream&gt;</span>
<span class="co2">#include &lt;vector&gt;</span>
<span class="co2">#include &lt;functional&gt;</span>
<span class="co2">#include &lt;chrono&gt;</span>
<span class="co2">#include &lt;string&gt;</span>
<span class="kw1">struct</span> Employee <span class="br0">{</span>
Employee<span class="br0">(</span><a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a> id<span class="br0">)</span> <span class="sy4">:</span> id<span class="br0">(</span>id<span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span>
<a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a> id<span class="sy4">;</span>
<a href="cpp-container-vector.html"><span class="kw1269">std::<span class="me2">vector</span></span></a><span class="sy1">&lt;</span><a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a><span class="sy1">&gt;</span> lunch_partners<span class="sy4">;</span>
<a href="cpp-thread-mutex.html"><span class="kw2154">std::<span class="me2">mutex</span></span></a> m<span class="sy4">;</span>
<a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a> output<span class="br0">(</span><span class="br0">)</span> <span class="kw4">const</span>
<span class="br0">{</span>
<a href="cpp-string-basic_string.html"><span class="kw1230">std::<span class="me2">string</span></span></a> ret <span class="sy1">=</span> <span class="st0">&quot;Employee &quot;</span> <span class="sy2">+</span> id <span class="sy2">+</span> <span class="st0">&quot; has lunch partners: &quot;</span><span class="sy4">;</span>
<span class="kw1">for</span><span class="br0">(</span> <span class="kw4">const</span> <span class="kw4">auto</span><span class="sy3">&amp;</span> partner <span class="sy4">:</span> lunch_partners <span class="br0">)</span>
ret <span class="sy2">+</span><span class="sy1">=</span> partner <span class="sy2">+</span> <span class="st0">&quot; &quot;</span><span class="sy4">;</span>
<span class="kw1">return</span> ret<span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">void</span> send_mail<span class="br0">(</span>Employee <span class="sy3">&amp;</span>, Employee <span class="sy3">&amp;</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="co1">// &#27169;&#25311;&#32791;&#26102;&#30340;&#21457;&#20449;&#25805;&#20316;</span>
<a href="cpp-thread-sleep_for.html"><span class="kw2149">std::<span class="me2">this_thread</span><span class="sy4">::</span><span class="me2">sleep_for</span></span></a><span class="br0">(</span><a href="cpp-chrono-duration.html"><span class="kw997">std::<span class="me2">chrono</span><span class="sy4">::</span><span class="me2">seconds</span></span></a><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw4">void</span> assign_lunch_partner<span class="br0">(</span>Employee <span class="sy3">&amp;</span>e1, Employee <span class="sy3">&amp;</span>e2<span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">static</span> <a href="cpp-thread-mutex.html"><span class="kw2154">std::<span class="me2">mutex</span></span></a> io_mutex<span class="sy4">;</span>
<span class="br0">{</span>
<a href="cpp-thread-lock_guard.html"><span class="kw2166">std::<span class="me2">lock_guard</span></span></a><span class="sy1">&lt;</span><a href="cpp-thread-mutex.html"><span class="kw2154">std::<span class="me2">mutex</span></span></a><span class="sy1">&gt;</span> lk<span class="br0">(</span>io_mutex<span class="br0">)</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> e1.<span class="me1">id</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot; and &quot;</span> <span class="sy1">&lt;&lt;</span> e2.<span class="me1">id</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot; are waiting for locks&quot;</span> <span class="sy1">&lt;&lt;</span> <a href="cpp-io-manip-endl.html"><span class="kw1791">std::<span class="me2">endl</span></span></a><span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">{</span>
<span class="co1">// &#29992; std::scoped_lock &#21462;&#24471;&#20108;&#20010;&#38145;&#65292;&#32780;&#26080;&#38656;&#25285;&#24515;</span>
<span class="co1">// &#20854;&#20182;&#23545; assign_lunch_partner &#30340;&#35843;&#29992;&#27515;&#38145;&#25105;&#20204;</span>
<span class="co1">// &#32780;&#19988;&#23427;&#20134;&#25552;&#20379;&#20415;&#21033;&#30340; RAII &#39118;&#26684;&#26426;&#21046;</span>
std<span class="sy4">::</span><span class="me2">scoped_lock</span> lock<span class="br0">(</span>e1.<span class="me1">m</span>, e2.<span class="me1">m</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#31561;&#20215;&#20195;&#30721; 1 &#65288;&#29992; std::lock &#21644; std::lock_guard &#65289;</span>
<span class="co1">// std::lock(e1.m, e2.m);</span>
<span class="co1">// std::lock_guard&lt;std::mutex&gt; lk1(e1.m, std::adopt_lock);</span>
<span class="co1">// std::lock_guard&lt;std::mutex&gt; lk2(e2.m, std::adopt_lock);</span>
<span class="co1">// &#31561;&#20215;&#20195;&#30721; 2 &#65288;&#33509;&#38656;&#35201; unique_lock &#65292;&#20363;&#22914;&#23545;&#20110;&#26465;&#20214;&#21464;&#37327;&#65289;</span>
<span class="co1">// std::unique_lock&lt;std::mutex&gt; lk1(e1.m, std::defer_lock);</span>
<span class="co1">// std::unique_lock&lt;std::mutex&gt; lk2(e2.m, std::defer_lock);</span>
<span class="co1">// std::lock(lk1, lk2);</span>
<span class="br0">{</span>
<a href="cpp-thread-lock_guard.html"><span class="kw2166">std::<span class="me2">lock_guard</span></span></a><span class="sy1">&lt;</span><a href="cpp-thread-mutex.html"><span class="kw2154">std::<span class="me2">mutex</span></span></a><span class="sy1">&gt;</span> lk<span class="br0">(</span>io_mutex<span class="br0">)</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> e1.<span class="me1">id</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot; and &quot;</span> <span class="sy1">&lt;&lt;</span> e2.<span class="me1">id</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot; got locks&quot;</span> <span class="sy1">&lt;&lt;</span> <a href="cpp-io-manip-endl.html"><span class="kw1791">std::<span class="me2">endl</span></span></a><span class="sy4">;</span>
<span class="br0">}</span>
e1.<span class="me1">lunch_partners</span>.<span class="me1">push_back</span><span class="br0">(</span>e2.<span class="me1">id</span><span class="br0">)</span><span class="sy4">;</span>
e2.<span class="me1">lunch_partners</span>.<span class="me1">push_back</span><span class="br0">(</span>e1.<span class="me1">id</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
send_mail<span class="br0">(</span>e1, e2<span class="br0">)</span><span class="sy4">;</span>
send_mail<span class="br0">(</span>e2, e1<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
Employee alice<span class="br0">(</span><span class="st0">&quot;alice&quot;</span><span class="br0">)</span>, bob<span class="br0">(</span><span class="st0">&quot;bob&quot;</span><span class="br0">)</span>, christina<span class="br0">(</span><span class="st0">&quot;christina&quot;</span><span class="br0">)</span>, dave<span class="br0">(</span><span class="st0">&quot;dave&quot;</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#22312;&#24182;&#34892;&#32447;&#31243;&#20013;&#25351;&#27966;&#65292;&#22240;&#20026;&#23601;&#21320;&#39184;&#25351;&#27966;&#21457;&#37038;&#20214;&#28040;&#32791;&#24456;&#38271;&#26102;&#38388;</span>
<a href="cpp-container-vector.html"><span class="kw1269">std::<span class="me2">vector</span></span></a><span class="sy1">&lt;</span><a href="cpp-thread-thread.html"><span class="kw2146">std::<span class="me2">thread</span></span></a><span class="sy1">&gt;</span> threads<span class="sy4">;</span>
threads.<span class="me1">emplace_back</span><span class="br0">(</span>assign_lunch_partner, <a href="cpp-utility-functional-ref.html"><span class="kw1069">std::<span class="me2">ref</span></span></a><span class="br0">(</span>alice<span class="br0">)</span>, <a href="cpp-utility-functional-ref.html"><span class="kw1069">std::<span class="me2">ref</span></span></a><span class="br0">(</span>bob<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
threads.<span class="me1">emplace_back</span><span class="br0">(</span>assign_lunch_partner, <a href="cpp-utility-functional-ref.html"><span class="kw1069">std::<span class="me2">ref</span></span></a><span class="br0">(</span>christina<span class="br0">)</span>, <a href="cpp-utility-functional-ref.html"><span class="kw1069">std::<span class="me2">ref</span></span></a><span class="br0">(</span>bob<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
threads.<span class="me1">emplace_back</span><span class="br0">(</span>assign_lunch_partner, <a href="cpp-utility-functional-ref.html"><span class="kw1069">std::<span class="me2">ref</span></span></a><span class="br0">(</span>christina<span class="br0">)</span>, <a href="cpp-utility-functional-ref.html"><span class="kw1069">std::<span class="me2">ref</span></span></a><span class="br0">(</span>alice<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
threads.<span class="me1">emplace_back</span><span class="br0">(</span>assign_lunch_partner, <a href="cpp-utility-functional-ref.html"><span class="kw1069">std::<span class="me2">ref</span></span></a><span class="br0">(</span>dave<span class="br0">)</span>, <a href="cpp-utility-functional-ref.html"><span class="kw1069">std::<span class="me2">ref</span></span></a><span class="br0">(</span>bob<span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">for</span> <span class="br0">(</span><span class="kw4">auto</span> <span class="sy3">&amp;</span>thread <span class="sy4">:</span> threads<span class="br0">)</span> thread.<span class="me1">join</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> alice.<span class="me1">output</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span> <span class="sy1">&lt;&lt;</span> bob.<span class="me1">output</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span>
<span class="sy1">&lt;&lt;</span> christina.<span class="me1">output</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span> <span class="sy1">&lt;&lt;</span> dave.<span class="me1">output</span><span class="br0">(</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#21487;&#33021;&#30340;&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">alice and bob are waiting for locks
alice and bob got locks
christina and bob are waiting for locks
christina and alice are waiting for locks
dave and bob are waiting for locks
dave and bob got locks
christina and alice got locks
christina and bob got locks
Employee alice has lunch partners: bob christina
Employee bob has lunch partners: alice dave christina
Employee christina has lunch partners: alice bob
Employee dave has lunch partners: bob</pre></div>
</div>
</div>
<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/issue2981">LWG 2981</a></td>
<td>C++17</td>
<td>&#26366;&#25552;&#20379;&#26469;&#33258; <code>scoped_lock&lt;MutexTypes...&gt;</code> &#30340;&#20887;&#20313;&#25512;&#23548;&#25351;&#24341;</td>
<td>&#24050;&#31227;&#38500;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-thread-unique_lock.html"><span class="t-lines"><span>unique_lock</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#23454;&#29616;&#21487;&#31227;&#21160;&#30340;&#20114;&#26021;&#20307;&#25152;&#26377;&#26435;&#21253;&#35013;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
</table>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-thread-lock_guard.html"><span class="t-lines"><span>lock_guard</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#23454;&#29616;&#20005;&#26684;&#22522;&#20110;&#20316;&#29992;&#22495;&#30340;&#20114;&#26021;&#20307;&#25152;&#26377;&#26435;&#21253;&#35013;&#22120;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
</table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>