/*
修訂時期: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...