首页 > 代码库 > 异步多线程处理

异步多线程处理

import asyncio,time,requests

import threading, time, requests
url = "http://www.jd.com"
total = 0
suc = 0
fail = 0
exception = 0
maxtime=0
mintime=100
gt3=0
lt3=0
class RequestThread(threading.Thread):
    def __init__(self, thread_name):  
        threading.Thread.__init__(self)  
        self.test_count = 0
    def run(self):
        self.test_performace()
    def test_performace(self):  
            global total
            global suc
            global fail
            global exception
            global gt3
            global lt3
            try:  
                st = time.time()  
                conn = requests.get(url)
                res = conn.status_code
                if res== 200:
                    total+=1
                    suc+=1
                else:
                    total+=1
                    fail+=1
                time_span = time.time()-st  
                print (‘%s:%f\n‘%(self.name,time_span)  )
                self.maxtime(time_span)  
                self.mintime(time_span)  
                if time_span>3:
                    gt3+=1
                else:
                    lt3+=1
            except Exception as e:  
                print (e  )
                total+=1
                exception+=1
    def maxtime(self,ts):  
            global maxtime
            print (ts)
            if ts>maxtime:
                maxtime=ts
    def mintime(self,ts):  
            global mintime
            if ts<mintime:
                mintime=ts
@asyncio.coroutine
async def hello():
    thread_count = 1000
    i = 0  
    while i <= thread_count:  
        t = RequestThread("线程:" + str(i))
        t.start()  
        i += 1
start_time=time.time()
loop=asyncio.get_event_loop()
loop.run_until_complete(hello())
loop.close()
print(‘异步处理时间:%s‘%(time.time()-start_time))

  

异步多线程处理