进程实际上是一个线程组,因此一个多线程进程就是一个团队,里面的每一条线程都可以被单独调度,提高了程序执行的并发性。
拓展:
通常,对于一个多任务的程序来说,需要创建多条线程,但是线程的多寡应该是由任务的轻重来决定的,因此对于一个更加灵活的多线程程序而言,更高级的使用技巧是所谓的线程池。
下面是一个线程池的实现模板样图,并处于初始状态:
有这么几点:
1,任务队列中刚开始没有任何任务,是一个具有头结点的空链队列。
2,使用互斥锁来保护这个队列。
3,使用条件变量来代表任务队列中的任务个数的变化——将来如果主线程往队列中投放任务,那么可以通过条件变量来唤醒那些睡着了的线程。
4,通过一个公共开关——shutdown,来控制线程退出,进而销毁整个线程池。