请教一个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()