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

245 lines
14 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>&#24182;&#21457;&#25193;&#23637;</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_experimental_concurrency skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#24182;&#21457;&#25193;&#23637;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-experimental.html">experimental</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<p>C++ &#24182;&#21457;&#25193;&#23637; (C++ Extensions for Concurrency) &#65292; ISO/IEC TS 19571:2016 &#65292;&#20026; C++ &#26631;&#20934;&#24211;&#23450;&#20041;&#19979;&#21015;&#26032;&#32452;&#20214;&#65306;</p>
<h3><span class="mw-headline" id="std::future_.E7.9A.84.E6.8C.81.E7.BB.AD.E5.8F.8A.E5.85.B6.E4.BB.96.E6.89.A9.E5.B1.95">std::future &#30340;&#25345;&#32493;&#21450;&#20854;&#20182;&#25193;&#23637;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/future&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/future&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;">&lt;experimental/future&gt;</a></code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-future.html"><span class="t-lines"><span>future</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>&#20197;&#25345;&#32493;&#21644;&#20854;&#20182;&#29305;&#24615;&#22686;&#24378;&#30340; <span class="t-lc"><a href="cpp-thread-future.html">std::future</a></span> &#29256;&#26412;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-shared_future.html"><span class="t-lines"><span>shared_future</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>&#20197;&#25345;&#32493;&#21644;&#20854;&#20182;&#29305;&#24615;&#22686;&#24378;&#30340; <span class="t-lc"><a href="cpp-thread-shared_future.html">std::shared_future</a></span> &#29256;&#26412;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-concurrency-promise.html"><span class="t-lines"><span>promise</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>&#20351;&#29992; <span class="t-lc">std::experimental::future</span> &#30340; <span class="t-lc"><a href="cpp-thread-promise.html">std::promise</a></span> &#20462;&#25913;&#29256;&#26412;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-concurrency-packaged_task.html"><span class="t-lines"><span>packaged_task</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>&#20351;&#29992; <span class="t-lc">std::experimental::future</span> &#30340; <span class="t-lc"><a href="cpp-thread-packaged_task.html">std::packaged_task</a></span> &#20462;&#25913;&#29256;&#26412;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-when_all.html"><span class="t-lines"><span>when_all</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>&#20135;&#29983;&#22312;&#25152;&#26377;&#32473;&#23450; furure &#25110; shared_future &#22343;&#23601;&#32490;&#26102;&#25104;&#20026;&#23601;&#32490;&#30340; future<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-when_any.html"><span class="t-lines"><span>when_any</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>&#20135;&#29983;&#22312;&#33267;&#23569;&#19968;&#20010;&#32473;&#23450; future &#25110; shared_future &#23601;&#32490;&#26102;&#25104;&#20026;&#23601;&#32490;&#30340; future<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-make_ready_future.html"><span class="t-lines"><span>make_ready_future</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>&#20135;&#29983;&#31435;&#21363;&#23601;&#32490;&#24182;&#20445;&#26377;&#25351;&#23450;&#20540;&#30340; future<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-make_exceptional_future.html"><span class="t-lines"><span>make_exceptional_future</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>&#20135;&#29983;&#31435;&#21363;&#23601;&#32490;&#24182;&#20445;&#26377;&#32473;&#23450;&#24322;&#24120;&#30340; future<br />
<span class="t-mark">(&#20989;&#25968;&#27169;&#26495;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E7.89.B9.E6.80.A7.E6.B5.8B.E8.AF.95.E5.AE.8F">&#29305;&#24615;&#27979;&#35797;&#23439;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/future&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/future&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;">&lt;experimental/future&gt;</a></code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__cpp_lib_experimental_future_continuations</span></span></div>
</div>
</td>
<td>&#33267;&#23569;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">201505</span></span></span> &#30340;&#20540;&#65292;&#25351;&#31034;&#25903;&#25345; future::then &#21644;&#20854;&#20182;&#25193;&#23637;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/latch&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/latch&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;">&lt;experimental/latch&gt;</a></code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__cpp_lib_experimental_latch</span></span></div>
</div>
</td>
<td>&#33267;&#23569;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">201505</span></span></span> &#30340;&#20540;&#65292;&#25351;&#31034;&#25903;&#25345; latch &#31867;&#22411;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/barrier&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/barrier&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;">&lt;experimental/barrier&gt;</a></code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__cpp_lib_experimental_barrier</span></span></div>
</div>
</td>
<td>&#33267;&#23569;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">201505</span></span></span> &#30340;&#20540;&#65292;&#25351;&#31034;&#25903;&#25345; barrier &#31867;&#22411;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/atomic&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/atomic&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;">&lt;experimental/atomic&gt;</a></code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__cpp_lib_experimental_atomic_smart_pointers</span></span></div>
</div>
</td>
<td>&#33267;&#23569;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">201505</span></span></span> &#30340;&#20540;&#65292;&#25351;&#31034;&#25903;&#25345;&#21407;&#23376;&#26234;&#33021;&#25351;&#38024;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
</table>
<h2><span class="mw-headline" id=".E5.B9.B6.E5.85.A5_C.2B.2B20">&#24182;&#20837; C++20</span></h2>
<p>&#24182;&#21457; TS &#30340;&#19979;&#21015;&#32452;&#20214;&#24050;&#24182;&#20837; C++20 &#26631;&#20934;&#12290;</p>
<h3><span class="mw-headline" id=".E9.97.A9.E5.92.8C.E5.B1.8F.E9.9A.9C">&#38377;&#21644;&#23631;&#38556;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/latch&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/latch&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;">&lt;experimental/latch&gt;</a></code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-latch.html"><span class="t-lines"><span>latch</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>&#21333;&#27425;&#20351;&#29992;&#30340;&#32447;&#31243;&#23631;&#38556;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/barrier&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/barrier&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;">&lt;experimental/barrier&gt;</a></code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-barrier.html"><span class="t-lines"><span>barrier</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>&#21487;&#22797;&#29992;&#32447;&#31243;&#23631;&#38556;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-experimental-flex_barrier.html"><span class="t-lines"><span>flex_barrier</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>&#24102;&#26377;&#22312;&#23436;&#25104;&#26102;&#30340;&#21487;&#23450;&#21046;&#34892;&#20026;&#30340;&#21487;&#22797;&#29992;&#32447;&#31243;&#23631;&#38556;<br />
<span class="t-mark">(&#31867;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.8E.9F.E5.AD.90.E6.99.BA.E8.83.BD.E6.8C.87.E9.92.88">&#21407;&#23376;&#26234;&#33021;&#25351;&#38024;</span></h3>
<p>&#36825;&#20123;&#31867;&#27169;&#26495;&#26367;&#25442; shared_ptr &#30340;<a href="cpp-memory-shared_ptr-atomic.html">&#21407;&#23376;&#20989;&#25968;&#37325;&#36733;</a></p>
<table class="t-dsc-begin">
<tr class="t-dsc-header">
<td colspan="2">
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/header/experimental/atomic&amp;action=edit&amp;redlink=1" class="new" title="cpp/header/experimental/atomic&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;">&lt;experimental/atomic&gt;</a></code></div>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/atomic_shared_ptr&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/atomic shared ptr&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>atomic_shared_ptr</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>std::shared_ptr &#30340;&#21407;&#23376;&#29256;&#26412;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/experimental/atomic_weak_ptr&amp;action=edit&amp;redlink=1" class="new" title="cpp/experimental/atomic weak ptr&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;"><span class="t-lines"><span>atomic_weak_ptr</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-concurrency-ts t-mark-ts">(&#24182;&#21457; TS)</span></span></span></div>
</div>
</td>
<td>std::weak_ptr &#30340;&#21407;&#23376;&#29256;&#26412;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
</table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>