中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++為什么盡量不要顯式共享可寫數據

發布時間:2021-11-25 16:11:10 來源:億速云 閱讀:128 作者:iii 欄目:大數據

這篇文章主要講解了“C++為什么盡量不要顯式共享可寫數據”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++為什么盡量不要顯式共享可寫數據”吧!

CP.3:盡量不要顯式共享可寫數據

Reason(原因)

如果不共享可寫數據,就不會發生數據競爭。你共享得越少,忘記同步訪問操作(并發生數據競爭)的可能性就越小。你共享得越少,等待鎖釋放的需求就越少(因而可以提高性能)。

Example(示例)

bool validate(const vector<Reading>&);
Graph<Temp_node> temperature_gradiants(const vector<Reading>&);
Image altitude_map(const vector<Reading>&);
// ...

void process_readings(const vector<Reading>& surface_readings)
{
   auto h2 = async([&] { if (!validate(surface_readings)) throw Invalid_data{}; });
   auto h3 = async([&] { return temperature_gradiants(surface_readings); });
   auto h4 = async([&] { return altitude_map(surface_readings); });
   // ...
   h2.get();
   auto v2 = h3.get();
   auto v3 = h4.get();
   // ...
}

如果沒有常量修飾符,我們必須檢查函數的所有的非同步調用以防止surface_readings發生潛在的數據競爭。在函數中將suface__readings定義為常量之后可以推斷出其在函數體內部的用法。

Note(注意)

無法修改的數據可以安全并高效地分享。不需要加鎖:數據競爭無法在常量數據上發生。參照:CP.mess:消息傳遞和CP.31:最好傳值。

感謝各位的閱讀,以上就是“C++為什么盡量不要顯式共享可寫數據”的內容了,經過本文的學習后,相信大家對C++為什么盡量不要顯式共享可寫數據這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

乡宁县| 太仓市| 德兴市| 南江县| 修文县| 灌阳县| 会泽县| 延吉市| 宣武区| 莫力| 宜川县| 正阳县| 万宁市| 肇州县| 故城县| 上饶县| 犍为县| 宝应县| 哈密市| 津市市| 荆州市| 清新县| 西城区| 贺兰县| 沾益县| 安溪县| 翁源县| 松溪县| 通许县| 寻乌县| 阳曲县| 台安县| 黄浦区| 仁化县| 十堰市| 深州市| 云林县| 九龙县| 综艺| 兴安县| 永善县|