伺服器開發 學習筆記 多執行緒總結

2021-10-02 09:23:04 字數 2375 閱讀 2587

/*

修訂時期:2020/1/26

修訂人:莫忘輸贏

修訂內容:

1、利用4個執行緒進行平行計算,c++中鎖,原子鎖,多執行緒

修訂內容:

2、利用計時器對鎖的效能進行測試

*////檔案io操作

///互斥鎖

///原子鎖

#include #include #include #include #include"celltimestamp.hpp"

using namespace std;

mutex g_mutex_lock_guard;

mutex g_mutex_lock;

///atomicsum

///atomic_int sum = 0;

int g_sum = 0;

int g_normal_sum = 0;

int g_sum_count = 20000000;

int g_sum_normal_count = 80000000;

const int g_thread_count = 4;

void main_normal_print_num()

}///執行緒處理函式 lock_guard_1

void thread_print_num_lock_guard_1()

}///執行緒處理函式 lock_guard_2

void thread_print_num_lock_guard_2()

}///執行緒處理函式 lock_1

void thread_print_num_lock_1()

}///執行緒處理函式 lock_2

void thread_print_num_lock_2()

g_mutex_lock.unlock();

}void test_time_muilt_thread_calc_1()

///使用執行緒陣列

///test-time muilt-thread-calc

celltimestamp ttime;

for (int i = 0; i < g_thread_count; i++)

cout << "test_time_muilt_thread_calc_1"<<"經過了" << ttime.getelapsedtimeinmillisec() << "毫秒,"

<< "平行計算得到sum值為:" << g_sum << endl;

///end-test-time

}void test_time_muilt_thread_calc_2()

///使用執行緒陣列

///test-time muilt-thread-calc

celltimestamp ttime;

for (int i = 0; i < g_thread_count; i++)

cout << "test_time_muilt_thread_calc_2" << "經過了" << ttime.getelapsedtimeinmillisec() << "毫秒,"

<< "平行計算得到sum值為:" << g_sum << endl;

///end-test-time

}void test_time_muilt_thread_calc_3()

///使用執行緒陣列

///test-time muilt-thread-calc

celltimestamp ttime;

for (int i = 0; i < g_thread_count; i++)

cout << "test_time_muilt_thread_calc_3"<<"經過了" << ttime.getelapsedtimeinmillisec() << "毫秒,"

<< "平行計算得到sum值為:" << g_sum << endl;

///end-test-time

}void test_time_muilt_thread_calc_4()

///使用執行緒陣列

///test-time muilt-thread-calc

celltimestamp ttime;

for (int i = 0; i < g_thread_count; i++)

cout << "test_time_muilt_thread_calc_4"<<"經過了" << ttime.getelapsedtimeinmillisec() << "毫秒,"

<< "平行計算得到sum值為:" << g_sum << endl;

///end-test-time

}void test_time_normal_calc()

int main(int argc,char **ar**)

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

這裡的 是為了引入乙個問題 執行緒安全 include include 執行緒標頭檔案 include 簡單說std future提供了一種訪問非同步操作結果的機制 include 數學操作標頭檔案 include include 獲取本機器參考執行緒數的標頭檔案 include c語言中的stdl...

多執行緒伺服器

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

linux學習筆記12 多執行緒伺服器程式設計

include include include include include using namespace std struct s info 定義這個結構體是因為執行緒呼叫函式只有乙個入口引數,但需要傳入多個引數,所以使用結構體傳參 void thr void arg 執行緒的呼叫函式 els...