1. 程式人生 > >C++使用心得

C++使用心得

今天關注了下最新的C++標準,並試用了下std::thread,lock_guard等功能,還是不錯的。

對於std::thread要join/detach,不然會有異常。

另外當使用socket時網路函式bind應該使用::bind表明是全域性的名稱空間


#include <iostream>
#include <thread>
#include <chrono>
#include <mutex>
#include <vector>

using namespace std;


int globalCount = 10;
std::mutex g_mutex;

void fun1(int n)
{
 std::lock_guard<std::mutex> g(g_mutex);
 globalCount++;
 n++;
 thread::id i = std::this_thread::get_id(); 
 cout << i << " fun1: " << n << endl;

}

void fun2(int& n)
{
 n++;
 thread::id i = std::this_thread::get_id(); 
 cout << i << " fun1: " << n << endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
 int n1 = 100;
 int n2 = 100;
 std::thread t1(fun1, n1);
 std::thread t2(fun2, std::ref(n2));
 t1.join();
 t2.join();
 cout << "Main:" << n1 << " , " << n2 << endl;

 std::vector<std::thread*> threadList;
 for(int i = 0; i < 20; i++)
 {
  std::thread* t = new std::thread(fun1, i);
  threadList.push_back(t);
 }
 for(int i = 0; i < 20; i++)
 {
  threadList[i]->join();
 }

 std::this_thread::sleep_for(std::chrono::seconds(1));
 cout << endl << globalCount << endl;

 cout << "press any key to exit..." << endl;
 char c;
 cin >> c;
}

相關推薦

C#_Markov_心得感想

面向對象 pan 結果 機會 客戶 == bsp foreach循環 概率 來到實驗室正好有一個月了,趁著端午假期稍微輕松一些,在大改程序體系之前,想將自己在這30天中工作之一Markov回顧一下,將從真實的寫程序中學習到的知識、思想記錄下來。希望能和大家積極討論! 本文會

查找網上關於C++讀取Excel表格資料後的心得

cst 批評 目錄 work 各路 網上 sse rate books 使用微軟提供的自帶COM組件來讀Excel 一、讀取Excel文件COM類的相關環境的搭建: 1、首先新建一個MFC對話框工程,可命名為ReadWriteExcel 2、在添加類選項中, 選擇MFC

C# 下載文件的心得

exce 一般處理程序 a標簽 res 而不是 打開 nbsp ie瀏覽器 處理 下載文件最常用的有兩種: 第一種:直接使用A標簽,對應著文件的地址。 第二種:將文件寫成流,然後在回傳給客戶端。 第一種,使用起來方便,但是有個壞處,如果你的文件是可編輯的文件(比如Ex

C#模板設計模式使用和學習心得

傳統 oracle 設計模式 管理系統 邏輯 導致 www. 離開 不回 模板設計模式: 模版方法模式由一個抽象類和一個(或一組)實現類通過繼承結構組成,抽象類中的方法分為三種: 抽象方法:父類中只聲明但不加以實現,而是定義好規範,然後由它的子類去實現。

C++學習心得(一)

eof gpo pre typeid 學習 div ctrl+z c++ str 2018-01-20 while (cin >> n)//終止可以使用輸入eof或Ctrl+Z for (auto &c : str) cout <

Eclipse for C++安裝心得

eve 完成後 安裝 www. str tool jdk下載 變量名 HP 【前言】 這學期C++課老師要求安裝一個Eclipse for C++,折騰了幾個小時查閱各種資料終於弄好了,下面分享一下個人的安裝心得。 【安裝Eclipse】 Eclipse安裝地址:ht

C++類學習心得

參考文獻:https://www.cnblogs.com/xiongxuanwen/p/4290086.html 類的一個重要點是建構函式,其官方說明為: 建構函式是一個特殊的、與類同名的成員函式,用於給每個資料成員設定適當的初始值。 例如: class employee { protected

C++Primer,C++標準IO庫閱讀心得

IO 標準庫型別和標頭檔案 iostream istream 從流中讀取    ostream 寫到流中去    iostream 對流進行讀寫;從 istream 和 ostream 派生而來fstream ifstream 從檔案中讀取;由 istream 派生而來    ofstream 寫到檔案中去

CSDN著名技術專家Visual C++2010開發體驗心得——從Visual C++6.0到Visual C++2010見證VC++輝煌時刻

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Python C API 使用心得

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C#設計模式-觀察者模式與事件的一點小小心得

由於經驗和能力有限,設計模式這種高大上的東西要研究下來,不知道要禿了多少根頭髮,作為一個初學者,也只能簡單的理解一下大概思路 最近剛好在惡補基礎,看到了事件event  看大佬的部落格和資料一大串,幾百行 還沒看已經暈掉了 只能先簡化一下,說一下自己的理解 事件 Event 

AT指令(嵌入式+物聯網)程式設計心得C語言

本文拿我當初做了一個共享裝置為例,最開始用的硬體是stm32f1+sim800(2g),這兩個應該是國內做共享裝置最普遍的組合了,因為據說聯通2G快淘汰了,如果想用4g的sim7600,但是這也不影響AT指令使用,大家也可以用NBIOT(SIM7000)或者移遠的. 1,stm32f1串

關於C語言中變數作用域的個人心得

    這是本人的第一篇部落格,內容簡單總結淺陋。但這會是我寫部落格的開始,好啦!廢話不多說。。。。     學過C語言的同學可能都知道,在C中變數都具有作用域的說法。以下是標準的解釋和案例:    &

C# 開源控制元件DockPanel 使用心得(重要)

DockPanel中提供了幾個可用的類,重要的有兩個:DockPanel和DockContent。 DockPanel是從panel繼承出來的,用於提供可浮動的dock的子視窗進行浮動和dock的場所, DockContent是從form類中繼承出來的,用於提供可浮動的視窗基類.就是說: Doc

C++基礎教程面向物件學習筆記及心得感悟[圖]

C++基礎教程面向物件學習筆記及心得感悟[圖] 使用友元函式過載算術運算子: C ++中一些最常用的運算子是算術運算子 - 即加號運算子(+),減運算子( - ),乘法運算子(*)和除法運算子(/)。請注意,所有算術運算子都是二元運算子 - 這意味著它們需要兩個運算元 - 運算子的每一側都有一個運算

【Unity】【C#】《U3d人工智慧程式設計精粹》學習心得--------AI角色的感知方式-視覺感知實現解讀

視覺感知: sightSensor 與 sightTrigger 實現 視覺感知前提: 需要判斷是否有物體的視覺觸發器處於其他物體的視覺感知器的範圍內 感知視覺觸發器的感知器-------sightSensor類 可視角度, 最遠可視距離 繪製可視距離 繪製

C#中WebRequest請求的一些心得

  在C#開發中經常需要進行Web遠端訪問,方法很多,也使用了很久,但一直沒有做一個總結。   C#中用來進行遠端請求的方法有很多,如WebClient,WebRequest等,也各有特點。今天在這裡主要介紹WebRequest。         先從相對入門的不需要證書驗證,不需要登入的開始。 1

心得-C/C++學習過程的小技巧

C/C++學習小技巧 在碼程式碼過程中,會遇到很多問題,在此記錄自己在學習過程中遇到的“坑”。 1、不要在函式中返回區域性變數 a.C/C++能返回static修飾的區域性變數(因為在靜態儲存區) b.C/C++能返回用 new 建立的區域性變數(因為在堆空間) c.C/C+

(C/C++學習心得)5.C++中的虛繼承-虛擬函式-多型解析

1 #include<iostream> 2 using namespace std; 3 4 class bed 5 { 6 public: 7 bed(float l,float wi,float we) 8 :len(l),wid(w

(C/C++學習心得)6.陣列指標和指標陣列

說明:int (*p)[4] 和 int *p[4](陣列指標和指標陣列),如果你是一個初學者,也許當你看到這兩個名詞的時候,已經懵了。其實,只要你理解了其中的含義.這兩個名詞對你來說會相當簡單並且很有趣,下面,我們就來深入探討一下究竟什麼是陣列指標,什麼是指標陣列。 一.指標陣列 1.前面我們已經學過陣列