91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

C++怎么回避線程的生成和銷毀處理

發布時間:2021-11-25 15:50:55 來源:億速云 閱讀:189 作者:iii 欄目:大數據

本篇內容介紹了“C++怎么回避線程的生成和銷毀處理”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

CP.41:盡量回避線程的生成和銷毀處理

Reason(原因)

Thread creation is expensive.

創建線程代價高昂。

Example(示例)

void worker(Message m)
{
   // process
}

void dispatcher(istream& is)
{
   for (Message m; is >> m; )
       run_list.push_back(new thread(worker, m));
}

代碼中為每個消息生成一個線程,而且run_list很可能準備在任務結束時銷毀它們。

作為改善,我們可以準備一組事先生成的工作線程來處理這些消息。

Sync_queue<Message> work;

void dispatcher(istream& is)
{
   for (Message m; is >> m; )
       work.put(m);
}

void worker()
{
   for (Message m; m = work.get(); ) {
       // process
   }
}

void workers()  // set up worker threads (specifically 4 worker threads)
{
   joining_thread w1 {worker};
   joining_thread w2 {worker};
   joining_thread w3 {worker};
   joining_thread w4 {worker};
}
Note(注意)

If your system has a good thread pool, use it. If your system has a good message queue, use it.

如果你的系統包含一個優秀的線程池,使用它。如果你的系統包含一個優秀的消息隊列,使用它。

“C++怎么回避線程的生成和銷毀處理”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

c++
AI

卢龙县| 育儿| 大荔县| 贡觉县| 海阳市| 皋兰县| 安徽省| 无锡市| 前郭尔| 吉首市| 怀远县| 大化| 吉水县| 古浪县| 日照市| 双江| 河池市| 牙克石市| 吴忠市| 承德市| 罗定市| 美姑县| 武强县| 霍山县| 土默特右旗| 呼玛县| 仙桃市| 琼结县| 西平县| 澄城县| 贡觉县| 东山县| 定兴县| 彰化市| 水富县| 夏津县| 浑源县| 贺州市| 湾仔区| 醴陵市| 抚顺市|