[线程]glib库线程池代码剖析ITeye头条 - 牛牛娱乐

[线程]glib库线程池代码剖析ITeye头条

2019-02-02 11:50:45 | 作者: 鸿信 | 标签: 线程,等候,调用 | 浏览: 6772

现在能够结合流程图剖析线程池中创立一个线程的一个情形:从函数g_thread_pool_new的while循环调用了 g_thread_pool_start_thread函数,在函数中直接调用g_thread_create创立线程,被创立的线程调用函数 g_thread_pool_wait_for_new_task循环等候使命的到来,函数 g_thread_pool_wait_for_new_task调用g_async_queue_pop_unlocked (pool- queue)真实进入等候。如此可知,终究新创立的线程是调用异步行列的pop接口进入等候状况的,这样一个线程的创立就功德圆满 了。而函数g_thread_pool_new的while循环结束时就创立了max_threads个等候线程,也即这个新建的线程池目标有了 max_threads个线程以备运用。

       创立线程池、线程池中的线程是为了运用它,在线程池中取线程,叫线程干活的进程就很简略多了,这个调用进程: g_thread_pool_push g_thread_pool_queue_push_unlocked g_async_queue_push_unlocked 。可见终究调用的是异步数据行列的 接口,把要处理的数据刺进行列后它就会唤醒等候异步行列数据的等候线程。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章