【问题标题】:Does thread-local mean thread safe?线程本地是否意味着线程安全?
【发布时间】:2011-04-17 05:30:35
【问题描述】:

具体来说,我在谈论 Python。我试图通过查看对象的值而不将其传入来破解某些东西(只是一点点),我想知道使用线程本地来执行此操作是否是线程安全的。还有,你是怎么做这种事情的?

【问题讨论】:

    标签: python multithreading thread-safety thread-local


    【解决方案1】:

    不——线程本地意味着每个线程都有自己的该变量的副本。使用它是(至少通常)线程安全的,因为每个线程都使用自己的变量,与其他线程可以访问的同名变量分开。 OTOH,它们(通常)对线程之间的通信没有用处。

    【讨论】:

    • 所以,我可以使用my_psuedo_global = threading.local() 在module_x 中设置一个变量,然后稍后在module_y 中以某种方式访问​​它,而不会破坏线程安全?
    • 并非如此——虽然您当然可以通过(伪)全局变量将值从一个线程局部变量传递到另一个变量,但您需要同步对全局变量的访问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 2017-05-14
    相关资源
    最近更新 更多