1进程
2线程
④线程池
线程池:让进程在初始化时有一定数目的线程,没有任务时线程自动进入睡眠,有任务了自动执行任务,一直循环,进程根据任务情况来增删线程数量。
细节:
① 任务队列中刚开始没有任何任务,只是一个具有头结点的空链队列
② 使用互斥锁来保护这个队列,使用条件变量来显示任务链表中的任务数量的变化,如主线程向任务链表中投放任务,可以通过条件变量来唤醒睡着的线程
③通过公共开关控制线程退出,进而销毁线程池
互斥(互斥锁 mute):一个共享资源在任意时刻最多只能有一个线程在访问
互斥锁不适用的情况:被保护的共享资源在大多数情况是读操作,使用的话会导致他、一起读的线程阻塞