thread form 多线程 let exception n) read sha
- 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))
异步多线程处理
来源: http://www.bubuko.com/infodetail-2230545.html