自己学习线程的时候画图加以自己的理解并侧入小故事
3个结构体
- 客人们
- XX酒店
- 技师们
故事图片已经在这里了
下面铺代码
#define LL_ADD(item,list)do{
item->prev = NULL;
item->next = list;
list = item;
}while(0)
typedef struct NWORKER
{
pthread_t threadid;
struct NWORKER* prev;
struct NWORKER* next;
}nWorker;
typedef struct NJOB
{
void(*job_func)(void* arg);
void* user_data;
struct NJOB* prev;
struct NJOB* next;
}nJob;
typedef struct NTHREADPOOL
{
struct NWORKER* workers;
struct NJOB* job;
pthread_mutex_t jobs_mtx;
pthread_cond_t jobs_cond;
}nThreadPool;