boost 中使用 執行緒池threadpool

2021-06-23 02:23:38 字數 1028 閱讀 2699

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 ...