1 | However, it uses closures and thread local storage to distinguish between shared and isolated variables. | |
2 | When a closure "captures" a variable it "lifts" the variable out of its local scope and effectively moves it into an anonymous object. | |
3 | A closure "closes around" these references, so the function invocation can safely refer to the variables even when the variables have gone out of scope! |