当前位置: 首页 > 网络应用技术

【翻译】结构并发和纯粹的功能

时间:2023-03-07 12:57:41 网络应用技术

  函数或方法是纯粹的,如果:

  

  我们可能最关心第一个功能,没有副作用。

  纯函数被广泛描述,例如,请参见Wikipedia上的文章,使用Java或Haskell Docs页面的博客文章。

  纯粹的功能在Wikipedia,博客等中广泛看到。

  因此,可以进行一些计算和执行记录的函数仍被认为是纯净的。

  但是,纯度不是双重特征。有时我们可能会更多地关注副作用。某些执行计算和打印的功能仍然被认为是纯净的。

  完成。

  结构并发性是并发编程的一个功能,并嵌套并发函数的生命周期。换句话说,该函数在后台运行一个函数(函数和函数同时运行),因此该函数必须在函数为之前完成完全的。

  语言和框架USET - 始于背景,并由监督或工作进行左右。这似乎是一个合理的功能,但是并发代码很少在代码实践中以这种样式编写。以及取决于使用的语言和框架的过程,它们在背景中运行,而无需监督和协调

  

  纳撒尼尔·J·史密斯(Nathaniel J.Smith)对和谐陈述(无限制计算的无限叉)进行了全面比较。它的文章对结构化和攻击进行了另一种解释。

  

  查看结构化并发特征的另一种方法是,并发操作功能的生命周期必须遵循编程的语法布局。因此,复杂的范围追踪器代码结构。

  因此,上述两个相关特征(结构化并发和纯函数)是否存在?是的,这是打开线程并将其保留到功能的副作用。不仅是因为我们创建了一个新线程来改变整体状态工作。这是基于假设功能呼叫生命周期的假设的生命周期。

  

  在结构和定义中不可能发生的事情,并且不允许与线程相关的副作用。在函数完成之前,必须完成具有函数启动的线程。换句话说:

  满足结构化的偶然性特征的功能是公共女巫线程尺寸效应的函数。建设性并发必须满足纯函数必须没有线副作用。

  通过等待完整或打断它们)。

  通过这种方式,线程成为函数的实现细节。该函数具有管理线程的开始和结束的责任。

  功能复合物。纯函数仍然可以在内部使用副作用逻辑,例如使用可变状态进行性能,但没有任何全局效果。类似地,纯线函数可能会创建内部并发执行线程,但是在函数完成后无法运行。

  其他副作用可能在螺纹式函数中发生。不必全部构成各种尺寸效果。

  其他副作用可能仍会在纯线功能中发生,并且不需要副作用。

  

  一种函数类型的函数最终会返回结果的结果吗?

  

  它们可能是,但是我们需要调整定义。返回未来的功能将在完成后不会留下任何并发线程。

  功能可以符合并发编程的特征。只要返回函数,所有其他功能也会由函数创建。

  

  让我们看一下背景中没有线程的事实,但是该函数目前已完成。以相同的方式,我们可以将此定义扩展到pure。

  

  因此,该函数的功能,例如各种形式,与此值不同,该值是计算出的描述IO操作。一旦中断中断,就会有副作用。

  描述计算“固定控制”。

  通过与我们以前所做的事情进行比较,返回IO结果的函数将不包含完成线程运行后的副作用,然后该函数是结构化和并发的。

  

  结构并发是一个应许的概念,它提供了一种正确编写并发过程的方法,并且很容易阅读。

  隐含的含义是,通过使用纯函数,我们可以使我们的代码易于阅读,跟踪和理解。

  作为纯线程的函数。它更易于理解,同时确保在函数执行完成后将在后台执行并发线程。

  功能中的超级副作用可能对代码库的可维护性和长期演变有益。依靠问题的复杂性,确实有必要避免功能中的副作用。这在代码的维护和长期演变中起着重要作用。

  原始:https://juejin.cn/post/7097074199381934117