小熊科技|linux c编程之高效线程池如何实现无琐化( 二 )
do {work = NULL;if (thread_queue_len(thread) <= 0)//also atomicbreak;tmp = thread->out;//prefetch workwork = } while (!__sync_bool_compare_and_swap(if (work) {// do something在线程的动态减少后 , 原先线程上未能执行完的任务只需要由//主线程再次根据任务调度算法重新分配至其他存活的工作者线程队列中即可 , 不//存在上述问题 , 当然 , 此时可以同时执行负载均衡算法加以优化 。 }
(4) 环形队列
源码中环形队列实现主要参考了linux内核中kfifo的实现 , 如下图所示:
队列长度为2的整次幂 , out和in下标一直递增至越界后回转 , 其类型为unsigned int , 即out指针一直追赶in指针 , out和in映射至FiFo的对应下标处 , 其间的元素即为队列元素 。
推荐阅读
- 所持股份|万兴科技:公司控股股东、实际控制人吴太兵质押150万股
- 发布公告|数量过半!博创科技:天通股份累计减持约150万股
- 英雄科技聊数码|蔡崇信有实力买下篮网,那身价3200亿的马云,能买下几支NBA球队
- 科技前沿阵地|涨疯了!海思安防芯片遭哄抬“围剿”
- 月影浓|吴亦凡机械造型走秀 垫肩披风搭银框眼镜科技感足
- 中国历史发展过程|中国历史发展过程.中国的科技史界过去半个多世纪
- 天津|桂发祥:不再持有昆汀科技股份
- 消费|减持!天通股份:减持博创科技约32万股
- 处罚|老周侃股:吉鑫科技大股东应补偿踩雷投资者
- 华中科技大学|杯具!超本科线95分,本科有路不走,却梦幻般碰瓷,撞开专科的门