线程池

    xiaoxiao2022-07-07  153

    线程池的作用:在并发编程过程中,会使用线程去执行任务,那么一般的做法是:创建一个线程,执行任务,然后销毁。但是在某些应用场景总需要多个线程去执行任务,频繁的创建和销毁线程会增加一些额外的负担。所以可以这样做:创建一大堆的线程,放在这个池子里,他们在程序运行过程中,一般都不销毁。

    线程池的设计根据应用场景设计:

         

    主要设计三部分内容:

    1.设计一个队列保存任务;

    2.任务队列没有任务时,消费者线程处于等待状态;当有任务时从任务队列取任务;

    3.生产者线程能够唤醒消费者线程。

    任务队列的设计:(1)链表实现;(2)动态数组实现唤醒线程的设计:(1)pthread_mutex和pthread_cond(互斥锁和信号量);(2)eventfd+epoll
    最新回复(0)