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

Sta*_*uru 64 parallel-processing

解释无状态系统和有状态系统之间的差异,以及状态对并行性的影响.

ser*_*ico 78

一个无状态的系统可以被看作是一个盒子[黑?;)]在任何时间点,输出的值仅取决于输入的值[在一定的处理时间之后]

状态的系统可以看作是一个盒子,在任何时间点,输出的值取决于输入和内部状态的值,所以基本上有状态的系统就像一个状态机" 存储器 "作为同一组输入值可以根据系统接收的先前输入产生不同的输出.

并行编程的角度来看,无状态系统如果正确实现,可以同时由多个线程/任务执行而不会出现任何并发问题[例如考虑可重入函数]有状态系统将需要多个线程执行访问和以独占方式更新系统的内部状态,因此需要序列化[同步]点.


小智 48

有状态服务器在连接之间保持状态.无状态服务器没有.

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

当您向无状态服务器发送请求时,它不会创建任何跟踪有关您的请求的信息的对象.如果您在服务器上"打开"某些内容,则服务器根本不会保留您打开的信息."关闭"操作毫无意义,因为没有什么可以关闭的.

HTTP和NFS是无状态协议.每个请求都是独立的.

有时cookie用于向无状态协议添加某些状态.在HTTP(网页)中,服务器向您发送cookie,然后浏览器保持状态,仅在后续请求中将其发送回服务器.

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

  • 这个答案没有解决状态/较少/完全/对于并行性的影响的问题. (4认同)