Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 静态方法和线程安全应用程序_Python_Multithreading_Google App Engine_Thread Safety - Fatal编程技术网

Python 静态方法和线程安全应用程序

Python 静态方法和线程安全应用程序,python,multithreading,google-app-engine,thread-safety,Python,Multithreading,Google App Engine,Thread Safety,我目前正在将我的GAE应用程序从Python 2.5运行时转换为启用了“线程安全”的Python 2.7运行时 目前,我的数据访问方法类似于: @staticmethod def GetByPermaLinkId(permaLinkId): result = memcache.get("entry-by-permalink-id:" + permaLinkId) if result is None: result = db.get(permaLinkId)

我目前正在将我的GAE应用程序从Python 2.5运行时转换为启用了“线程安全”的Python 2.7运行时

目前,我的数据访问方法类似于:

@staticmethod
def GetByPermaLinkId(permaLinkId):
    result = memcache.get("entry-by-permalink-id:" + permaLinkId)

    if result is None:
        result = db.get(permaLinkId)
        memcache.set("entry-by-permalink-id:" + permaLinkId, result)

    return result
所以我想我有两个问题

  • 我的数据访问方法完全荒谬吗

  • 我的数据访问方法可以在“线程安全”应用程序中使用吗

  • 我是AppEngine和Python开发的新手,非常感谢您的反馈

    谢谢

  • 缓存频繁请求的数据是一个好主意,但是您确实想看看Python风格指南PEP8

  • 是的,你的方法还可以。python中的线程安全通常是多线程访问共享数据的问题。您使用memcache来处理共享数据,据我所知,这个用例中的memcache是线程安全的。如果您尝试将结果缓存在全局变量中,则会出现竞争条件,在这种情况下,您可以使用ADING.Lock来避免它

  • 缓存频繁请求的数据是一个好主意,但是您确实想看看Python风格指南PEP8

  • 是的,你的方法还可以。python中的线程安全通常是多线程访问共享数据的问题。您使用memcache来处理共享数据,据我所知,这个用例中的memcache是线程安全的。如果您尝试将结果缓存在全局变量中,则会出现竞争条件,在这种情况下,您可以使用ADING.Lock来避免它


  • 识别可能不安全的线程的简单方法是寻找“可变共享状态”。也就是说,它必须由代码修改(此处为true)和共享(不为true,因为您定义的变量的作用域仅限于调用它们的函数)。您好。我已经在devcon5.blogspot.com发布了一份针对GAE的threadsafe分析(尽管是针对GAE/J的),如果您有任何意见或其他问题,我将不胜感激。谢谢。识别线程不安全的东西的简单方法是寻找“可变共享状态”。也就是说,它必须由代码修改(此处为true)和共享(不为true,因为您定义的变量的作用域仅限于调用它们的函数)。您好。我已经在devcon5.blogspot.com发布了一份针对GAE的threadsafe分析(尽管是针对GAE/J的),如果您有任何意见或其他问题,我将不胜感激。谢谢