如何使这个脚本“线程安全”?
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在程序中使用这些数据。这个过程可能会涉及到很多步骤,比如读取文件、处理数据、然后再把结果输出到屏幕上。
有些时候,我们可能会遇到一些错误,比如程序运行的时候突然停止,或者输出的结果和我们预期的不一样。这些错误可能是因为代码写得不够好,或者是数据本身有问题。
为了让程序更稳定,我们可以在代码中加入一些检查,比如在读取数据之前先确认文件是否存在,或者在处理数据时检查数据的格式是否正确。这样可以减少错误发生的机会,让程序运行得更顺利。
总之,编程就像做菜,准备好材料、按照步骤来,才能做出美味的菜肴。如果中间出了问题,就要及时调整,确保最后的结果是我们想要的。
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 个回答
-2
我对Python不太熟悉,但难道不能用信号量或监视器来确保操作的原子性吗?
2
像字典这样的Python对象本身就是线程安全的,所以从这个角度来看,你的脚本已经是线程安全的了。你还想让什么其他的东西变得线程安全呢?至少现在看起来没问题。