gpt4 book ai didi

android - 如果里面没有消息,MessageQueue 怎么知道要阻塞多久呢?

转载 作者:行者123 更新时间:2023-11-29 23:16:18 26 4
gpt4 key购买 nike

据我了解,如果 MessageQueue 中只有带有 future 时间戳的消息,则 MessageQueue 会阻塞 Looper 的循环直到那个时间到来。但如果 MessageQueue 完全为空并等待新输入,则此机制也有效。在这种情况下,线程 如何知道休眠多长时间/何时醒来?

最佳答案

线程有一个“等待通知”机制。当线程在等待时,它实际上是在休眠。一旦收到通知,它就会醒来并恢复工作。

BlockingQueue 的实现使轮询线程在没有要服务的项目时等待,并在插入新项目时通知所有休眠线程。然后这些线程被唤醒并可以获取新插入的项目。

可以找到有关此机制的更多信息 here (或通过谷歌搜索)。

关于android - 如果里面没有消息,MessageQueue 怎么知道要阻塞多久呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55299628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com