為了不讓手生,邊複習邊手擼了乙個執行緒池,**量比較少,如下,用了一些c++11的實現,語言標準嘛,就是跨平台的:
thread_poo.h
#ifndef _thread_pool_#define _thread_pool_
#include#include#include#include#include#includeusing namespace std;
class thread_pool ;
#endif // !_thread_pool_h
thread_pool.cpp如下:
#include"thread_pool.h"thread_pool::thread_pool(int thread_nums)
}void thread_pool::worker());//加鎖的原因很簡單,如果不加可能這個任務被其他的執行緒執行了
task task= p_task.front();
p_task.pop();
lk.unlock();
task(); }}
thread_pool::~thread_pool()
} p_task.push(task);
p_condition.notify_one();
}
main如下:
#include"thread_pool.h"#includeusing namespace std;
void fun1()
}void fun2()
}int main()
C 11 執行緒池簡單實現
話不多說,先上 pragma once include include include include include include include include const int max threads 1000 typedef std function void void task int...
C 11 簡單實現執行緒池
執行緒池是一種多執行緒處理形式,處理過程中將任務新增到佇列,然後在建立執行緒後自動啟動這些任務。執行緒池執行緒都是後台執行緒。每個執行緒都使用預設的堆疊大小,以預設的優先順序執行,並處於多執行緒單元中。如果某個執行緒在託管 中空閒 如正在等待某個事件 則執行緒池將插入另乙個輔助線程來使所有處理器保持...
C 11 寫乙個執行緒池
多併發時避免系統不斷的建立和銷毀執行緒,過度消耗資源 切換等,一般都使用執行緒池來管理執行緒。可以讓乙個執行緒重複執行多個任務而提高效率,話不多說使用c 11 特性寫了乙個執行緒詞,直接上 記錄一下,輪子就可以復用啦!執行緒池的作用 非同步解耦!主要構成 執行緒,任務,管理元件。singleton....