无状态系统和有状态系统之间的区别是什么? 它们如何影响并行性?

解释无状态系统和有状态系统之间的区别,以及状态对并行性的影响。

123821 次浏览

无国籍系统可以看作是一个盒子[黑色?在任何时间点,输出的值只取决于输入的值[在一定的处理时间之后]

相反,有声有色系统可以被看作是一个盒子,在任何时间点,输出的值取决于输入(s)和内部状态的值,所以基本上,一个有状态系统就像一个带有“ 记忆”的状态机,因为相同的输入(s)值集可以根据系统接收到的前一个输入(s)生成不同的输出。

并行程序设计的角度来看,一个 无国籍系统,如果实现得当,可以由多个线程/任务同时执行,而不存在任何并发问题[例如可重入函数] 有声有色系统需要多个执行线程以独占的方式访问和更新系统的内部状态,因此需要一个序列化[同步]点。

有状态服务器在连接之间保持状态,而无状态服务器不保持状态。

因此,当您向有状态服务器发送请求时,它可能会创建某种连接对象来跟踪您所请求的信息。当您发送另一个请求时,该请求对上一个请求的状态进行操作。所以你可以发送一个请求来“打开”一些东西。然后您可以发送一个请求来“关闭”它。在这两个请求之间,那个东西在服务器上是“打开的”。

当您向无状态服务器发送请求时,它不会创建任何跟踪请求相关信息的对象。如果您在服务器上“打开”了某个东西,服务器就不会保留任何信息,说明您已经打开了某个东西。“关闭”行动将毫无意义,因为没有什么可以关闭。

HTTP 和 NFS 是无状态协议。

有时,cookies 用于为无状态协议添加某种状态。在 HTTP (web 页面)中,服务器向您发送一个 cookie,然后浏览器保持该状态,只是在后续请求时将其发送回服务器。

SMB 是一个有状态协议。客户端可以在服务器上打开一个文件,服务器可以拒绝其他客户端访问该文件,直到客户端关闭该文件。