首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

大侠请留步!python多线程调用tcl脚本有关问题

2012-07-23 
大侠请留步!!!python多线程调用tcl脚本问题。我用python起了多线程去调用不同的tcl文件。tcl.eval处,为什么

大侠请留步!!!python多线程调用tcl脚本问题。
我用python起了多线程去调用不同的tcl文件。
tcl.eval处,为什么不是并行?好像是串行呢?

Python code
#起3个线程    threadNum = 3                          threads = []    for i in range(threadNum):        data = 'test'        for j in range(VALUENUMBER):            data = data+' '+DataList[j][i]        res = ProductsTest(i,data,para)        threads.append(res)      for i in range(threadNum):        threads[i].start()    for i in range(threadNum):        threads[i].join()################################################################import Tkinterimport tracebacktcl = Tkinter.Tcl()class ProductsTest(threading.Thread):     def __init__(self, num, data,para):           threading.Thread.__init__(self)           self.thread_num = num           self.data = data        self.para = para            def run(self):              global tcl        starttime = time.clock()        returnFromTcl = ''        SCRIPTPATH1= "test1.tcl"        SCRIPTPATH2= "test2.tcl"        SCRIPTPATH3= "test3.tcl"        if self.thread_num == 1:            tcl.eval('source '+ SCRIPTPATH1)            returnFromTcl = tcl.eval(self.data)             elif self.thread_num == 2:            tcl.eval('source '+ SCRIPTPATH2)            returnFromTcl = tcl.eval(self.data)             else:            tcl.eval('source '+ SCRIPTPATH3)            returnFromTcl = tcl.eval(self.data)             Time= time.clock() - starttime


[解决办法]
是不是tcl脚本内部有资源需要串行的,Python代码这么写是没问题的,已经具备了串行的条件~

热点排行