欧美日韩在线第一页-欧美日韩在线观看精品-欧美日韩在线观看一区二区-欧美日韩在线免费看-欧美日韩在线视频不卡一区二区三区

編程代碼
新聞詳情

C++11多線程編程(一)——初始多線程

發布時間:2020-12-31 15:30:23 瀏覽次數:2278

首先還是那個問題,我們為什么需要多線程?單線程編程做的好好的,又簡單又好用,為什么要弄出一個多線程編程呢?難道前人是為了設計而設計了個多線程的?顯然這是不可能,那么是什么原因呢?用最精煉的語言概括無非就是以下兩個原因。

效率和用戶體驗

效率主要體現在服務端,用戶體驗更多是體現在客戶端,當然肯定不是說效率只體現在服務端,用戶體驗只體現在客戶端,無論是效率還是用戶體驗在服務端和客戶端上都會體現,只是說側重點不一樣,這一點大家要注意下。


那么多線程到底是什么呢?在計算機術語中也可以叫并發,指的是在單個系統里同時執行多個獨立的活動,而不是順序的一個接一個的執行。假設這樣的一個場景,你在一個軟件中要導入100萬條的數據,如果你用單線程,那么你在導入的過程中,你只能等待它導完,其他什么事你都做不了,因為軟件會卡在那里,之所以卡在那里,是因為軟件里面在傳輸數據,而你是用單線程,數據還沒傳輸完,下面的代碼無法執行。所以這個時候你必須用多線程,開啟一個線程來導入這100萬條數據,這樣才能保證在導入數據的同時,你還可以在軟件上做其他操作。

大家要注意一點,在單核CPU上面,并發并不是真正的并發,而是通過時間片輪詢的方式來看起來像是并發,真正的并發應該是在多核CPU上面。

說完了多線程的相關概念,我們來說一說多線程編程。在早期C++11之前,C++在語言級別上并不支持多線程,要想實現多線程,必須通過第三方庫或者調用平臺系統函數來實現的,而不同平臺的多線程的系統函數又都不一樣,所以給多線程編程帶來了很多麻煩。但是從C++11開始,C++終于開始在語言級別上支持多線程,我們也終于可以用一份代碼在多個平臺上跑了。

那么C++如何實現線程呢?以下是一個實現線程的簡單的例子

#include <iostream>
#include <thread>
using namespace std;
void thread_task()
{
    cout << "hello thread" << endl;
}

int main()
{
    thread t(thread_task);
    t.join();
    cout << "thread end" << endl;
    return 0;
}

thread t(thread_task)這個是打開C++多線程世界的一個最簡單也是最基礎的一行代碼,從此C++開始從語言級別上支持了多線程。

以上是一個非常簡單的C++多線程的例子,main函數是主線程,thread_task是子線程,thread t(thread_task)意思是啟動這個子線程,join()會使主線程會被阻塞,直到子線程執行完畢,然后才退程序。

所以從這個例子大家可以看出C++多線程寫法是多么的簡潔,讓人充滿的學習的欲望。

在線客服 雙翌客服
客服電話
  • 0755-23712116
  • 13310869691
主站蜘蛛池模板: 久久视屏这里只有精品6国产| 1000部禁片黄的免费看| 在线视频黄| 国产三级在线免费| 爱爱动态视频免费视频| 国产吧在线视频| 免费精品美女久久久久久久久久| 国产成人免费片在线观看 | 日韩不卡手机视频在线观看| 那一个欧美一级毛片| 国产一级一片免费播放视频| 国产精品视频免费播放| 精新精新国产自在现拍欣赏网| 国产亚洲精品久久久999小说| 免费国产片| 日韩欧美毛片| 亚洲激情视频网| 在线播放国产真实女同事| 一级aa毛片| 久久国产精品二区99| 欧美日本一区二区| 国产成人免费片在线视频观看| 狠狠色噜噜狠狠狠97影音先锋| 精品欧美亚洲韩国日本久久| 国产成人精品视频频| 激情啪啪网站| 久久成人国产精品免费| 亚洲精品综合一区二区| 51国产午夜精品免费视频| 一级日本大片免费观看视频| 久久亚洲国产精品五月天| 日本vs欧美一区二区三区| 中日韩欧美在线观看| 亚洲a级黄色片| 亚洲一级毛片在线播放| 亚洲国产九九精品一区二区| 成人网免费观看| 成人va视频| 亚洲精品日本高清中文字幕| 在线免费看a| 亚洲精品日韩一区二区日本|