Crb*_*gan 4 python multithreading
我的软件中有许多线程,它们都执行相同的操作,但每个线程从不同的“角度”进行操作。我有一个在整个线程和线程内的对象中使用的“StateModel”对象,但 StateModel 需要为每个线程进行不同的计算。
我不喜欢将 StateModel 对象传递给所有需要它的函数的想法。通常,我会创建一个模块变量,整个程序中的所有对象都可以引用该模块变量中的相同数据。但是,有没有办法让每个线程都有不同且独立的静态模块变量的概念?一种静态线程变量?
谢谢。
这是在 中实现的threading.local。
我倾向于不喜欢大多数引用文档的答案,但是......好吧,一切的时间和地点。
\n\n\n\n\n表示线程本地数据的类。线程本地数据是其值特定于线程的数据。要管理线程本地数据,只需创建本地实例(或子类)并在其上存储属性:
\n\nRun Code Online (Sandbox Code Playgroud)\n\nmydata = threading.local() \nmydata.x = 1 \n对于不同的线程,实例\xe2\x80\x99s 值将不同。
\n\n有关更多详细信息和广泛的示例,请参阅模块的文档字符串\n
\n_threading_local。
值得注意的是,您可以让您的类扩展threading.local,然后您的类突然具有线程本地行为。
| 归档时间: |
|
| 查看次数: |
3215 次 |
| 最近记录: |