gpt4 book ai didi

multithreading - 是否准确地说每个响应输入的程序都有一个无限循环的主线程?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:11 24 4
gpt4 key购买 nike

我想知道说每个响应式程序的核心都有一个主线程是否正确

while not quit
if work to do
do work

示例:

  • HTTP 监听器/网络服务器
  • 用户界面
  • 执行作业的服务

表达我的问题的另一种方式:

是否可以创建一个在有某种类型的刺激(例如鼠标点击、网络请求)之前没有线程执行的程序?

最佳答案

轮询输入是(或应该是)异常(exception)而不是规则。你的循环:

while not quit
if work to do
do work

是使处理器忙于轮询输入的繁忙等待。

大多数程序的编写方式,循环略作修改:

while not quit
wait for input
process input

“等待输入”是非忙等待。线程处于可警告等待状态,这意味着它不消耗任何 CPU 资源。当线程订阅的事件发生时,线程被唤醒,以便处理该事件。然后它又睡着了。

请注意,“处理事件”可能而且经常涉及启动另一个线程。

所以,是的:可以创建一个程序,在该程序中,直到出现某种类型的刺激时,线程才会执行。这是当今大多数应用程序的标准,包括 HTTP 监听器、GUI 应用程序和系统服务。

关于multithreading - 是否准确地说每个响应输入的程序都有一个无限循环的主线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49819626/

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