首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Libcurl - curl_multi_wakeup

Libcurl - curl_multi_wakeup
EN

Stack Overflow用户
提问于 2021-12-31 20:12:13
回答 2查看 176关注 0票数 -4

读取函数描述curl_multi_wakeup:在这里输入链接描述

调用此函数只保证唤醒当前(或者如果没有当前) curl_multi_poll调用,(这意味着有可能对该函数进行多次调用将唤醒相同的等待操作)。

我对“同样的等待行动”这句话感到困惑。怎么回事?

也就是说,假设在线程"A“中有一个处于事件备用模式的函数curl_multi_poll()。

例如,现在我从线程"B“和线程"C”两次调用curl_multi_wakeup()函数。

用这句话来判断会发生什么:

...function将唤醒相同的等待操作。

原来,函数curl_multi_poll -只唤醒了一次?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-31 20:32:39

curl_multi_wakeup用于与等待curl_multi_poll的线程池一起使用。

文档的意思是,如果您反复调用curl_multi_wakeup,它可能只会唤醒一个线程,而不一定每个调用curl_multi_wakeup都会唤醒一个线程。

票数 1
EN

Stack Overflow用户

发布于 2022-01-01 06:49:38

curl_multi_poll()是一个相对较新的调用,旨在简化等待curl_multi_poll()的“中断”线程。以下是一个很好的解释:

https://daniel.haxx.se/blog/2019/12/09/this-is-your-wake-up-curl/ 投票()是一个函数,它要求libcurl在任何涉及到的传输上等待活动--或者睡眠,并且在下一个N毫秒内不返回。 调用这个等待函数(或者使用旧的curl_multi_wait(),甚至执行select()或轮询()调用“手动”)对于一个行为良好的程序来说是至关重要的。重要的是,在没有什么可做的时候,让代码像这样进入睡眠状态,并让系统在需要工作时再次唤醒它。如果不能正确地执行此操作,就有可能在某个地方使用libcurl而不是繁忙的循环,这会使您的应用程序在运行期间使用100%的CPU。由于多种原因,这是非常不必要的,也是很糟糕的。 当..。发生了一些事情,例如,应用程序需要立即关闭,用户一直在要求一种方法来唤醒您。 curl_multi_wakeup()显式地使curl_multi_poll()函数立即返回。它被设计成可以从不同的线程中使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70545403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档