gpt4 book ai didi

multithreading - Pharo Smalltalk 中的 ThreadLocal 类

转载 作者:行者123 更新时间:2023-12-03 16:12:34 25 4
gpt4 key购买 nike

Pharo 中是否有对应的 ThreadLocals Java的,或者实现类似行为的方法?例如,在 Hibernate 中,ThreadLocals 用于通过单个 getCurrentSession 方法调用提供一个线程(当前请求/上下文)“范围”统一的工作实例——在 Hibernate 上命名为 Session。开发人员无需担心,只需相信该方法将返回正确的工作单元。这在Pharo上可能吗?

我在 Pharo Books(例如 Pharo,Pharo 企业和 Deep Pharo)和 in this page 上浏览了这个。 ,但找不到有用的信息。

最佳答案

在 Pharo 中,您使用 ProcessLocalVariable 的子类.
例如:

"Create a class to store you variable"
ProcessLocalVariable subclass: #MyVariable.

"Use it like this"
MyVariable value: myValue.

"Inside your code, access to current value like this"
MyVariable value.

请注意,即使比线程局部变量更强大,您还拥有与执行堆栈相关的“动态变量”(比线程更精确)
你像这样使用它:
"Create a class to store you variable"
DynamicVariable subclass: #MyVariable.

"Use it like this"
MyVariable
value: myValue
during: [
"... execute your code here... usually a message send"
self doMyCode ].

"Inside your code, access to current value like this"
MyVariable value.

这种变量提供相同的功能(它们甚至更强大)并且通常是最好的替代品。

关于multithreading - Pharo Smalltalk 中的 ThreadLocal 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42489293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com