如何使这个脚本“线程安全”?

时间:2011-03-26 09:42:29

标签: python multithreading thread-safety

import os, sys, time
from threading import Thread
from threading import currentThread

import SimpleXMLRPCServer

servAddr = ("localhost", 8000)

serv = SimpleXMLRPCServer.SimpleXMLRPCServer(servAddr)

tt = []

import SimpleXMLRPCServer

class myThread(Thread):

    def __init__ (self,p):
        self.p = p
        Thread.__init__(self)

    def run (self):
        t = currentThread()
        while 1:
            n = random.random()
            tt[self.p] = self.p + '!!!'
            time.sleep(n)


def rn():
    mythreads = []
    for p in (1,2,3):
        t = myThread(p)
        mythreads.append(t)
        t.start()

    return 1
def test():
    return tt
serv.register_function(rn)
serv.register_function(test)
serv.register_introspection_functions()

2 个答案:

答案 0 :(得分:2)

像pict这样的Python对象已经是线程安全的,所以在这个意义上你的脚本已经是线程安全的了。还有什么其他具体的东西你想让线程安全,至少目前它看起来还不错

答案 1 :(得分:-1)

我对python并不熟悉,但你不能使用Semaphores / Monitors进行原子保险吗?