- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道实现状态机是对计算机进行编程的完美方式。由于状态机通常使用非阻塞调用进行编程,我想知道为什么会发明类似于 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/
我了解了 NodeJS 的非阻塞特性,以及 I/O 操作如何实现非阻塞。我创建了一个简单的测试来证明这一点 var request = require('request'); var http = r
我是一名优秀的程序员,十分优秀!