python 多线程http失败切换功能

来源:互联网 发布:java多线程通信方式 编辑:程序博客网 时间:2024/03/28 19:04
import threadingimport timegj=0lock=threading.Lock()def g_num(j=0):    global gj    if j==1:        if lock.acquire():            gj+=1            lock.release()class TestThread(threading.Thread):    def __init__(self, thread_num, ipaddr):        super(TestThread, self).__init__()        self.thread_num = thread_num        self.ipaddr=ipaddr        self.stopped = False        #self.timeout = timeout    def run(self):        n=0        while not self.stopped:            print "%s : %s - %s"%(self.thread_num,n,self.ipaddr)            if n==2:                g_num(1)                n=0            n+=1            time.sleep(1)    def stop(self):        self.stopped = True    def restart(self):        self.stopped = False    def isStopped(self):        return self.stoppeddef t_func(thread_num):    n=0    while 1:        print "%s : %s"%(thread_num,n)        n+=1        if n==2:            #print "exec g_num"            g_num(1)        time.sleep(1)#thread=TestThread(1)#thread.start()#thread.start()#time.sleep(5)#thread.stop()tn=[1,2,3,4,5]thread_list=[]ip=('IP-A','IP-B')ip_num=0def ip_change():    global ip_num    if(ip_num<len(ip)):        n=ip_num    else:        ip_num=0        n=ip_num    ip_num+=1    return ip[n]ipaddr=ip_change()for i in tn:    thread_list.append(TestThread(i,ipaddr))n=0for i in thread_list:    n+=1    print n    i.setDaemon(True)    i.start()while 1:    print "gj num is :%s"%gj    if gj>5:        ipaddr=ip_change()        print "gj>0 %s: %s"%(gj,ipaddr)        gj=0        for i in thread_list:            i.stop()            i.join(1)            #print "isDaemon %s"%i.isDaemon()            #print "isAlive %s"%i.isAlive()        thread_list=[]        for i in tn:            thread_list.append(TestThread(i,ipaddr))        for i in thread_list:            i.setDaemon(True)            i.start()    else:        g_num()    time.sleep(1)#print('Main thread Wainting')#time.sleep(2)#print thread.isStopped()#thread.stop()#print thread.isStopped()#thread.join()

0 0
原创粉丝点击