【发布时间】:2016-04-22 01:54:24
【问题描述】:
我是函数式编程的新手。我的理解是函数式编程是使用纯函数编写代码,而不改变数据的值。
当我们需要更新变量时,我们在函数式编程中创建新变量,而不是更改变量的值。
假设我们有一个变量x,它代表程序发出的HTTP请求的总数。如果我们有两个线程,那么我希望线程在任何线程发出 HTTP 请求时增加x。如果两个线程都制作了变量x 的不同副本,那么它们如何同步x 的值。例如:如果线程 1 发出 10 个 HTTP 请求,线程 2 发出 11 个 HTTP 请求,那么它们将分别打印 10 和 11,但我将如何打印 21。
【问题讨论】:
-
线程永远不是目标,永远是工具。你通常想尽可能地忘记它们,只让一些低级的、经过深思熟虑的机器在引擎盖下为你做线程。
标签: multithreading haskell clojure functional-programming erlang