/ThreadPool

just a instance

Primary LanguageC++

ThreadPool Thread

ThreadPool与Thead都为重新封装的类

Thread 内实现了Pause(暂停),Resume(挂起),Start(开始),Stop(停止),Run(运行)函数

Thread的Pause Resume参数均为thread::id.

Thread创建时候传入一个nullptr。让他阻塞掉。

在Start时候,传入任务。

ThreadPool内实现了addTask,Start,Pause,Resume等函数

ThreadPool中的Pause和Resume内部调用Thread的Pause和Resume。

ThreadPool中的AddTask函数:

判断任务队列是否满了,如果满了,直接Wait。否则添加到任务队列中,从线程池中找寻一个空的线程执行任务,调用notify唤醒该线程。

ThreadPool内部含有 vector<Thread*>,任务队列。当任务队列满的时候,会进行阻塞,当某个线程执行完任务,重新notify。

当前缺点!!!! 线程池与线程存在强关联性,线程内记录了当前线程池的指针。