我有httpHandler類的python文件。 我用它來與ThreadingMixIn如下:從線程內訪問全局變量
from SocketServer import ThreadingMixIn
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
Successful_Attempts = 0
Failed_Attempts = 0
class httpHandler(BaseHTTPRequestHandler):
def do_POST(self):
.....
class ThreadingHTTPServer(ThreadingMixIn, HTTPServer):
pass
,後來我開始,如下所示:
server = ThreadingHTTPServer(('localhost', PORT_NUMBER), httpHandler)
print 'Started httpserver on port ' , PORT_NUMBER
所以,按照我的理解,在HttpHandler的類,一旦連接成功,已經在一個不同的線程。 我想跟蹤我的線程,某種統計處理。 但是我不能訪問我的變量。 此外,我需要鎖定它們,以便它們代表真實值,而不是未定義的正確值。
一個非常低級的想法是創建一個全局列表和存儲變量。但是你必須小心不要在兩個不同的線程同時寫同一個列表(正如你所說的需要提供一個鎖),但是如果你只有兩個線程(main和一個工作線程),你可以用主要和剛剛寫工作沒有麻煩(和需要鎖) - 只是一個評論becaus可能有更好的方式 – Martin
@Martin,從我所見過的隊列似乎是事實上的方式之間共享信息Python中的線程。 – John