gpt4 book ai didi

c - 当计算机的本质是状态机时,为什么要发明阻塞调用?

转载 作者:行者123 更新时间:2023-11-30 21:32:45 24 4
gpt4 key购买 nike

我知道实现状态机是对计算机进行编程的完美方式。由于状态机通常使用非阻塞调用进行编程,我想知道为什么会发明类似于 Berkeley 套接字 API 的阻塞调用?难道它们不会鼓励不良的编程实践吗?

提前致谢。

编辑:这个问题背后的想法是建立这样一个事实:基于非阻塞 IO 的多上下文事件驱动状态机确实是对计算机进行编程的完美方式。其他一切都是业余的。不这么认为的人应该允许辩论。

最佳答案

您的问题提出了一些相当实质性的断言/假设:

the underlying nature of computers is a state machine?

好吧,你当然可以将计算机建模为状态机,但这本身并不意味着这样的模型代表了某种基本的“底层本质”。

I understand that implementing a state machine is the perfect way to program the computer.

然后无论如何,将所有程序编写为状态机。祝你好运。

在现实生活中,某些任务可以方便有效地编写为状态机,但有许多任务的状态机方法编写起来很麻烦,并且难以理解或维护。

没有“完美”的计算机编程方法。事实上,即使对于单个程序来说,声称完美也是相当自命不凡的。

Since state machines are typically programmed using non-blocking calls,

你不说吗?我认为你需要更具体地说明你的意思。我过去有时编写过基于状态机的软件,我不会将其描述为使用非阻塞调用实现的,也不会将其描述为公开非阻塞外部 API。

I wonder why blocking calls similar to the Berkeley sockets APIs were invented? Don't they encourage bad programming practice?

在我们考虑这个问题之前,您必须定义“不良编程实践”的含义。然而,据我所知,您得出的结论是:

  • 断言状态机编程方法是理想的,这意味着其他任何方法都低于标准。
  • 声称,但没有支持,只有非阻塞调用才具有状态机性质
  • 您得出的结论是,任何使用阻塞调用的行为都必定表现出不良的编程习惯。

在我看来,你的结论与编程社区的普遍观点和实践不一致。你的论点空洞且缺乏说服力。

关于c - 当计算机的本质是状态机时,为什么要发明阻塞调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46775822/

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