CherryPy, Threads i Member Variables; potencjalne problemy?

Powiedzmy, że mam następującą prostą klasę:

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)

Więc kiedy otwieram stronę indeksu po raz pierwszy, otrzymuję 1, następnym razem 2, potem 3, 4 itd. Moje pytania to:

Czy są z tym jakieś duże niebezpieczeństwa, szczególnie w przypadku wątków i wielu osób uzyskujących dostęp do strony w tym samym czasie?Czy muszę blokować zmienną składową w jakiś sposób za każdym razem, gdy jest ona zapisywana, aby zapobiec problemom?Czy coś się zmienia, jeśli używam żadnego podstawowego typu danych jako członka (takiego jak moja własna, skomplikowana klasa), a nie czegoś tak prostego jak liczba całkowita?

Nie rozumiem do końca, jak działa wątek z CherryPy, przypuszczam, że moim problemem w tym prostym przykładzie byłoby to, że w jednym wątku test_member może być równy jednej rzeczy, a gdy uzyskamy dostęp z innego wątku, będzie to coś zupełnie innego. Z góry przepraszam, jeśli brakuje mi czegoś, co jest dobrze udokumentowane, ale niektóre gogli naprawdę nie podniosły tego, czego szukałem. Rozumiem, że dla tak prostego przykładu istnieje wiele względnie łatwych ścieżek, które mogłyby rozwiązać potencjalne problemy tutaj (zachowaj stan zmiennej w bazie danych lub coś w tym rodzaju), ale to nie zadziała w moim rzeczywistym przypadku użycia .

questionAnswers(1)

yourAnswerToTheQuestion