CherryPy, потоки и переменные-члены; потенциальные проблемы?

Допустим, у меня есть следующий простой класс:

import cherrypy
import os

class test:
  test_member = 0;
  def __init__(self):
    return
  def index(self):
    self.test_member = self.test_member + 1
    return str(self.test_member)
  index.exposed = True

conf = os.path.join(os.path.dirname(__file__), 'config.ini')

if __name__ == '__main__':
  # CherryPy always starts with app.root when trying to map request URIs
  # to objects, so we need to mount a request handler root. A request
  # to '/' will be mapped to HelloWorld().index().
  cherrypy.config.update({'server.socket_host': '0.0.0.0'})
  cherrypy.quickstart(test(), config=conf)
else:
  # This branch is for the test suite; you can ignore it.
  cherrypy.config.update({'server.socket_host': '0.0.0.0'})
  cherrypy.tree.mount(test(), config=conf)

Поэтому, когда я открываю свою индексную страницу в первый раз, я возвращаюсь 1, в следующий раз 2, затем 3, 4 и так далее. Мои вопросы:

Are there any big dangers with this, particularly with threads and multiple people accessing the page at the same time? Do I have to lock the member variable in some way each time it's written to in order to prevent issues? Does anything change if I'm using a none basic data type as a member (such as my own, complicated class) rather than something as simple as an integer?

Я не совсем понимаю, как работает многопоточность с CherryPy, я полагаю, что в этом простом примере меня беспокоит то, что в одном потоке test_member может быть равен одной вещи, а при доступе из другого потока это будет нечто совершенно иное. Я заранее прошу прощения, если я пропустил что-то, что хорошо задокументировано, но некоторые поиски в Google не смогли найти то, что я искал. Я понимаю, что для такого простого примера есть несколько относительно простых путей, которые могли бы решить потенциальные проблемы здесь (сохранить состояние переменной в базе данных или что-то в этом духе), но это не сработает в моем реальном случае использования. ,

Ответы на вопрос(1)

Ваш ответ на вопрос