boost的thread庫中目前並沒有提供執行緒池,我在sorceforge上找了乙個用boost編寫的執行緒池。該執行緒池和boost結合的比較好,並且提供了多種任務執行策略,使用也非常簡單。
使用threadpool:
這個執行緒池不需要編譯,只要在專案中包含其標頭檔案就可以了。
寫乙個簡單的例子:
#include
#include
"threadpool.hpp
"using
namespace std;
using boost::threadpool::pool;
//some example tasks
void first_task()
void second_task()
void task_with_parameter(
int value)
int main(
int argc,
char *argv)
然後開始編譯
g++ test.cc -o boos -lboost_thread// 編譯時一定要加上執行緒庫引用,否則會出現一大票編譯錯誤哦
一般來說編譯都能通過,開始執行一下
./test
error while loading shared libraries: libboost_thread.so.1.49.0: cannot open shared object file: no such file or directory
按字面意思是說執行時找不到 libboost_thread.so.1.49.
0 這個共享類庫因此也無法載入,我們知道類庫預設都放在
/usr/local/lib
我們在該目錄下可以找到提示無法載入的類庫。
這個時候我們需要執行一下這個命令
$ sudo ldconfig /usr/local/lib
再執行程式就ok了。
boost建立執行緒池 boost庫使用 執行緒類
boost 庫中提供了兩種建立執行緒的方式,一種是單個執行緒建立,另外一種是執行緒組的建立,進行執行緒管理 thread 就是沒有組管理,與我們在linux下使用pthread create 函式是一樣的,只是在c 11中,引入了boost中的thread方法 包含標頭檔案 include usin...
使用boost中的執行緒池
呵呵,今天要寫乙個效能測試的程式,由於之前用過boost的thread,所以就採用了boost的thread庫 程式大概是根據指定的引數來生成多個執行緒來進行乙個操作 本來滿簡單的.但是之前時候不知道boost有程序組的支援 所以只能自己動態的建立一大堆 thread 放到乙個容器中.然後在遍歷jo...
Spring boot中使用執行緒池
既然用了 springboot 那自然得發揮 spring 的特性,所以需要 spring 來幫我們管理執行緒池 configuration public class treadpoolconfig 使用時 resource name consumerqueuethreadpool private ...