异步多线程处理

简介: 笔记
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))
相关文章
|
3月前
|
编解码 数据安全/隐私保护 计算机视觉
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
如何使用OpenCV进行同步和异步操作来打开海康摄像头,并提供了相关的代码示例。
136 1
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
|
3天前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
36 17
|
3月前
|
安全 调度 C#
STA模型、同步上下文和多线程、异步调度
【10月更文挑战第19天】本文介绍了 STA 模型、同步上下文和多线程、异步调度的概念及其优缺点。STA 模型适用于单线程环境,确保资源访问的顺序性;同步上下文和多线程提高了程序的并发性和响应性,但增加了复杂性;异步调度提升了程序的响应性和资源利用率,但也带来了编程复杂性和错误处理的挑战。选择合适的模型需根据具体应用场景和需求进行权衡。
|
3月前
|
网络协议 安全 Java
难懂,误点!将多线程技术应用于Python的异步事件循环
难懂,误点!将多线程技术应用于Python的异步事件循环
101 0
|
5月前
|
缓存 Java
异步&线程池 线程池的七大参数 初始化线程的4种方式 【上篇】
这篇文章详细介绍了Java中线程的四种初始化方式,包括继承Thread类、实现Runnable接口、实现Callable接口与FutureTask结合使用,以及使用线程池。同时,还深入探讨了线程池的七大参数及其作用,解释了线程池的运行流程,并列举了四种常见的线程池类型。最后,阐述了在开发中使用线程池的原因,如降低资源消耗、提高响应速度和增强线程的可管理性。
异步&线程池 线程池的七大参数 初始化线程的4种方式 【上篇】
|
5月前
|
Java 数据库
异步&线程池 CompletableFuture 异步编排 实战应用 【终结篇】
这篇文章通过一个电商商品详情页的实战案例,展示了如何使用`CompletableFuture`进行异步编排,以解决在不同数据库表中查询商品信息的问题,并提供了详细的代码实现和遇到问题(如图片未显示)的解决方案。
异步&线程池 CompletableFuture 异步编排 实战应用 【终结篇】
|
4月前
|
设计模式 缓存 Java
谷粒商城笔记+踩坑(14)——异步和线程池
初始化线程的4种方式、线程池详解、异步编排 CompletableFuture
|
5月前
|
Java
异步&线程池 CompletableFuture 异步编排 【下篇】
这篇文章深入探讨了Java中的`CompletableFuture`类,解释了如何创建异步操作、使用计算完成时的回调方法、异常处理、串行化方法、任务组合以及多任务组合的使用方式,并通过代码示例展示了各种场景下的应用。
异步&线程池 CompletableFuture 异步编排 【下篇】
|
5月前
|
数据采集 Python
多线程和异步
【8月更文挑战第12天】
49 3
|
6月前
|
Java Spring 容器
Spring boot 自定义ThreadPoolTaskExecutor 线程池并进行异步操作
Spring boot 自定义ThreadPoolTaskExecutor 线程池并进行异步操作
299 3