请教一个Python 多线程程序流程的问题
本人接触Python不久,最近开发中需要处理一种状况由一个循环线程全程对一个变量CP 进行价值,周期为一秒一次
然后又有N个线程分别以不同的周期对这个CP 进行不同的减值,
我研究了半天,貌似用GIL 的话要过多的等待分支线程回来,可能会造成不同步的错误结果
特来求教,请高手指点一下,我现在完全没思路啊。。。。谢谢了 ~~~
import threading from time import sleep,ctime def Capacity(MaxCapacity,Recharge_time):#增加CP 的方法 global cp while 1: print 'cp:',cp cp = cp+MaxCapacity/Recharge_time print 'now cp:',cp sleep(1) def Pao(cpxh,atime):#减少CP 的方法 while 1: global cp print 'pao:',cp cp = cp -cpxh print 'pao now cp',cp sleep(atime) def main(): print '\nGO' threads=[] threads2=[] t=threading.Thread(target=Capacity,args=(100,100)) threads.append(t) #print threads threads[0].setDaemon(True)#守护线程 threads[0].start()#启动累加线程 print 'cp thread over!',cp for i in range(5): p=threading.Thread(target=Pao,args=(2,3)) threads2.append(p) print 'pao%s ----------go!'%(threads2[i]),cp threads2[i].start() print 'pao%s ----------end'%(threads2[i]),cp cp=100 if __name__=='__main__': main()