c – libuv工作线程或工作队列健康检查?

前端之家收集整理的这篇文章主要介绍了c – libuv工作线程或工作队列健康检查?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在libuv中,最终可能会因为工作量太大或代码错误而将工作线程占用.是否有一个简单的函数可以检查工作线程或线程队列的运行状况?它不一定是100%确定性的,毕竟不可能确定工作线程是挂在慢速代码还是无限循环上.

因此,以下任何启发式方法都会很好:

>尚未处理的排队项目数.如果这个太大,则可能意味着工作线程忙或挂.
> libuv是否有任何线程查杀机制,如果工作线程在n秒内没有检查,它会被终止?

解决方法

libuv本身不存在该函数,我不知道任何OSS提供类似的东西.

就杀戮机制而言,没有任何内容可以融入libuv,但http://nikhilm.github.io/uvbook/threads.html#core-thread-operations建议:

A well designed program would have a way to terminate long running workers that have already started executing. Such a worker could periodically check for a variable that only the main process sets to signal termination.

猜你在找的C&C++相关文章