c 實現簡單的執行緒池

2021-10-02 04:33:52 字數 852 閱讀 7304

執行緒池,先建立一定數目的執行緒,初始都處於空閒狀態。當有新的任務進來,從執行緒池中取出乙個空閒的執行緒處理任務,處理完成之後,該執行緒被重新放回到執行緒池中。當執行緒池中的執行緒都在處理任務時,若有新的任務產生,只能等待,直到執行緒池中有執行緒結束任務空閒才能執行。

用c++實現固定執行緒數的執行緒池。

#include #include #include #include #include namespace graphicutility

else if (data->_isshutdown)

else

}}).detach();}}

fixedthreadpool() = default;

fixedthreadpool(fixedthreadpool&&) = default;

~fixedthreadpool()

_data->_condition.notify_all();}}

template void execute(f&& task)

_data->_condition.notify_one();

}private:

struct data

;std::shared_ptr_data;

};

測試

#includevoid printtest()

int main()

getchar();

return 0;

}

執行結果

c 實現簡單的執行緒池

c 執行緒池,繼承cdoit,實現其中的start和end 標頭檔案 多執行緒管理類 ifndef cthreadpoolmanage h define cthreadpoolmanage h include include include include include include inclu...

C 簡單執行緒池實現

執行緒池,簡單來說就是有一堆已經建立好的執行緒 最大數目一定 初始時他們都處於空閒狀態,當有新的任務進來,從執行緒池中取出乙個空閒的執行緒處理任務,然後當任務處理完成之後,該執行緒被重新放回到執行緒池中,供其他的任務使用,當執行緒池中的執行緒都在處理任務時,就沒有空閒執行緒供使用,此時,若有新的任務...

c 簡單執行緒池實現

boost threadpool參考 執行緒池,簡單來說就是有一堆已經建立好的執行緒 最大數目一定 初始時他們都處於空閒狀態,當有新的任務進來,從執行緒池中取出乙個空閒的執行緒處理任務,然後當任務處理完成之後,該執行緒被重新放回到執行緒池中,供其他的任務使用,當執行緒池中的執行緒都在處理任務時,就沒...