伺服器多執行緒學習(二)

2022-05-25 07:54:10 字數 1179 閱讀 5756

這裡的**是為了引入乙個問題:執行緒安全

#include#include//執行緒標頭檔案

#include//簡單說std::future提供了一種訪問非同步操作結果的機制

#include//數學操作標頭檔案

#include#include//獲取本機器參考執行緒數的標頭檔案

#include//c語言中的stdlib.h在c++被重新命名為cstdlib

#include////c語言中的time.h在c++被重新命名為ctime

using namespace std;

class counter

{} void addcount()

int count() const

private:

int m_count;

};int work(int a)

template void realwork(counter &c, double &totalvalue, iter itbegin,iter itend)

}//併發量

int main()

counter counter;

for (auto v :vec)

cout << "total times" << counter.count() << endl;

counter counter2;

auto iter = vec.begin() + vec.size() / 3;

auto iter2 = vec.begin() + vec.size() / 3 * 2;

thread b([&counter2, &totalvalue, iter, iter2]

); auto vend = vec.end();

thread c([&counter2, &totalvalue, iter2, vend]

); realwork(counter2, totalvalue, vec.begin(), iter);

b.join();

c.join();

cout << "執行緒呼叫的counter2:" << counter2.count() << endl;

}

執行結果如下:

為什麼會少呢?是因為執行緒操作相同的變數++的時候i,++的過程中,無法操作,也就會漏掉本次操作,造成所謂「執行緒安全問題」

Socket Java 多執行緒伺服器(二)

在 一 中實現了單執行緒的客戶 服務端的連線和資料傳送接收 應用多執行緒來實現伺服器和多客戶端之間的通訊 基本步驟 伺服器端建立serversocket,迴圈呼叫accept 等待客戶端連線 客戶端建立乙個socket並請求和伺服器端連線 伺服器端接收客戶端請求,建立socket與該客戶建立專線連線...

多執行緒伺服器

posix執行緒庫 a 與執行緒有關的函式都構成了乙個完整的系列,絕大多數函式的名字都是以 pthread 打頭的。b 要使用這些庫函式,要引入標頭檔案。c 鏈結這些執行緒庫函式時要使用編譯命令的 lpthread 選項。int pthread create pthread t thread,con...

多執行緒時間伺服器

include stdafx.h include include include include include define port 8080 int x 1 void error char str dword winapi new client proc lpvoid lpparam prin...