首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏python3

    python异步并发框架

    呵呵,这个标题有点大,其实只是想从零开始介绍一下异步的基础,以及 Python 开源异步并发框架的发展和互操作性。 另外,这是我在 OSTC 2014 做的一个同题演讲,幻灯片在这里,欢迎拍砖。 这就是一个很简单的事件驱动的异步并发了,虽然我们只是创建了 100 个 TCP 连接,但我们并发了,是事件驱动的了,而且我们异步地调用了后续的操作——输出目的地址。 异步并发不过如此,而已。 switch() print 34 def test2(): print 56 gr1.switch() print 78 gr1 = greenlet(test1)gr2 = greenlet(test2)gr1.switch() 这个例子里一共有三个微线程,分别是 main(也就是最外层默认的主微线程,自动创建的)、gr1 和 gr2。 程序一直顺序执行,直至最后一句 gr1.switch(),由 main 微线程切换至 gr1;gr1 输出 12 之后,又切换至 gr2;接着 gr2 输出 56 后,又切换回 gr1 之前的切出点,

    2.7K10发布于 2020-01-08
  • 来自专栏Helloted

    Dart异步并发

    在 HTML5 中引入的工作线程使得浏览器端的 JavaScript 引擎可以并发地执行 JavaScript 代码,从而实现了对浏览器端多线程编程的良好支持。 2、Event loops and queues Event loops and queues能够确保同时处理多个图形操作或者事件。 4、async与await 在Dart中我们可以通过async关键字来声明一个异步方法,异步方法会在调用后立即返回给调用者一个Future对象,而异步方法的方法体将会在后续被执行(应该也是通过协程的方式实现 isolate中的代码是按顺序执行的,任何Dart程序的并发都是运行多个isolate的结果。因为Dart没有共享内存的并发,没有竞争的可能性所以不需要锁,也就不用担心死锁的问题。 2、isolate特性 isolate是类似于线程(thread)但不共享内存的独立运行的worker,是一个独立的Dart程序执行环境。

    1.5K20编辑于 2022-06-08
  • 来自专栏编程语言的世界

    php mysql 异步, php mysql 异步并发查询

    mysqli提供了异步执行sql的功能,类似于select轮询机制。先提交SQL到预发布,再去轮询查询是否ok。 $conn->connect_error);    }    // 2.异步提交SQL    $conn->query($sql, MYSQLI_ASYNC);    // 3.返回SQL连接    return  $conn;}// 1.保存全部的Conn变量$all_conn = [];// 2.循环提交异步SQL$i = 4;while ($i--) {    $sql = "select scenes_name_cn

    4.1K30编辑于 2023-06-03
  • 来自专栏ReganYue's Blog

    Go并发之同步异步异步回调

    众所周知,Go语言最强大的地方在于它支持的高并发特性。下面我们先来了解一下Go并发的一些理论基础:同步异步异步回调。也顺带在此介绍一下进程、线程、协程的区别。 进程、线程、协程的区别 一边写代码、一边听音乐、一边聊天这就是进程并发。 一个进程可以开几条线程。比如迅雷下载时把一个文件分成多块,然后多线程下载。 同步异步异步回调 多个事件并发执行是为异步 多个事件按顺序执行是为同步 某个事件一直无法取到资源来继续执行是为阻塞,如果是串行的,前一个事件未执行,那下一个事件就需要永远等下去 什么是异步回调机制 这就是异步回调! 异步的优缺点: 优点: 速度快,效率高 没有时序上的严格先后关系 异步可以不需要立刻给调用方最终的结果,在给调用方最终结果之前可以进行更多操作。 缺点: 使用回调函数时容易形成回调地狱 开发难度较大 并发量不容易控制,容易消耗过多资源。

    1.7K10发布于 2021-09-16
  • 来自专栏ReganYue's Blog

    Go并发之同步异步异步回调

    Go并发之同步异步异步回调 大家好,这里是努力变得优秀的R君,本次我们这里继续来进行Golang系列《让我们一起Golang》,区块链系列内容正在进行中,共识算法已经完毕,接下来我们来构建一个以太坊DAPP ,我们都知道以太坊的主体是Go语言,所以我们还是十分有必要将Go语言的基础学好,本次我们继续来再谈Go并发之同步异步异步回调,希望对大家有帮助。 众所周知,Go语言最强大的地方在于它支持的高并发特性。下面我们先来了解一下Go并发的一些理论基础:同步异步异步回调。也顺带在此介绍一下进程、线程、协程的区别。 同步异步异步回调 多个事件并发执行是为异步 多个事件按顺序执行是为同步 某个事件一直无法取到资源来继续执行是为阻塞,如果是串行的,前一个事件未执行,那下一个事件就需要永远等下去 什么是异步回调机制 缺点: 使用回调函数时容易形成回调地狱 开发难度较大 并发量不容易控制,容易消耗过多资源。

    2.2K30编辑于 2022-04-19
  • 来自专栏小朋友学云计算

    13-异步并发

    异步并发 fork 尝试 先看一段剧本,要在12台主机进行执行,它的执行顺序是怎样的? 在ansible命令行中有一个-f 选项forck->指定并发数,在ansible.cfg配置文件中也有一个forks选项,默认就是5 再次实验 现在指定3个主机同时执行看下结果 time ansible-playbook forck1.yml -f 3 …… real 0m9.359s user 0m1.246s sys 0m0.697s 3台主机一起执行,第一批3台主机执行5秒,第二排2台主机执行5秒,时间±10秒 create: yes #查看异步状态 - async_status: jid: "{{ result.ansible_job_id }}" register: job_result 通过jid查看继续在执行的异步任务 [ansible@workstation ~]$ ansible serverc -m async_status -a "jid=555948486663.1850"

    75360发布于 2020-01-14
  • 来自专栏前端小叙

    前端异步请求并发限流

    一道前端经典面试题,前端异步请求并发限流,主要需求是:一次最多有 max 个请求发出,如果有超出的请求待有请求响应完成后再开始继续请求,始终保持仅有 max 个,假设 max=10个,代码如下: 主要原理为 :令牌桶原理 // 原理,使用令牌桶 // 指 一次允许同时发出 max 个请求,这max个请求按执行时间返回具体结果,这 max 个有一个返回结果后,再开始执行一个 // 创建一个异步执行任务 function // 获取任务列表中的第一个任务,并将第一个任务从列表中删除 const task = this.taskList.shift(); // 以下为异步请求

    94220编辑于 2022-08-03
  • 来自专栏程序员云帆哥

    同步、异步并发、并行、串行

    1、同步与异步   同步:多个任务情况下,一个任务A执行结束,才可以执行另一个任务B。只存在一个线程。   异步:多个任务情况下,一个任务A正在执行,同时可以执行另一个任务B。 2并发与并行   并行:是指两个或者多个事件在同一时刻发生。   并发:是指两个或多个事件在同一时间间隔发生。   并发和并行其实是异步线程实现的两种形式。 并行其实是真正的异步,多核CUP可以同时开启多条线程供多个任务同时执行,互补干扰。但是并发就不一样了,是一个伪异步。在单核CUP中只能有一条线程,但是又想执行多个任务。 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。 3、串行   串行:它是同步线程的实现方式,就是任务A执行结束才能开始执行B,单个线程只能执行一个任务。

    65830编辑于 2022-05-12
  • 来自专栏HarmonyOS点石成金

    鸿蒙开发:异步并发操作

    ,我们就可以继续执行下一个操作,相对于同步而言,异步操作可以同时处理多个任务,不会因为一个任务的耗时而影响其他任务的执行,从而提高了程序的并发处理能力‌,在实际的开发中,特别是应用启动初始化的时候,为了不阻塞程序 ,异步的初始化往往是开发中的首选,在鸿蒙当中,我们如何进行异步并发操作呢? 简单案例 使用setTimeout函数模拟了一个异步操作。 本文简单从以下三个方向概述: 1、什么是Promise 2异步回调接收成功和失败 3、结合async/await进行使用 4、相关总结 一、什么是Promise 首先,Promise它是一种用于处理异步操作的对象 ,并且提供了一个状态机制来管理异步操作的不同阶段,使用Promise有两个特点,第一个特点,它可以结合async/await,将异步操作转换为类似于同步操作的风格,第二个特点就是,正常的异步操作,使用回调函数来处理成功或失败的结果

    60510编辑于 2025-01-08
  • 来自专栏iOS底层原理

    多语言-异步并发

    一·为了异步测试算法 golang 我的main入口是这样的 func main() { //创建消息通道 var quitMsg chan int = make(chan int) //数据量 TestAlgorithm(arr,false,num,AlgorithmTyep.SelectSort); }else if (TaskId == 2)

    99510编辑于 2022-05-11
  • 来自专栏数据科学(冷冻工厂)

    Python异步: 什么是异步? (2

    模块和语言的变化共同促进了支持基于协程的并发、非阻塞 I/O 和异步编程的 Python 程序的开发。让我们仔细看看 asyncio 的这两个方面,从语言的变化开始。1. 异步支持Python 语言已更改为通过添加表达式和类型来适应 asyncio。更具体地说,它被更改为支持协程作为一流的概念。反过来,协程是 asyncio 程序中使用的并发单元。 异步上下文管理器是可以等待进入和退出方法的上下文管理器。“async with”表达式用于创建和使用异步上下文管理器。 2. 异步模块“asyncio”模块提供函数和对象,用于使用异步编程范例开发基于协程的程序。具体来说,它支持带有子进程(用于执行命令)和流(用于 TCP 套接字编程)的非阻塞 I/O。 现在我们大致了解了 asyncio 是什么,它用于异步编程。

    1.6K20编辑于 2023-01-28
  • 来自专栏数据科学(冷冻工厂)

    Python异步: 什么是异步? (2

    模块和语言的变化共同促进了支持基于协程的并发、非阻塞 I/O 和异步编程的 Python 程序的开发。 让我们仔细看看 asyncio 的这两个方面,从语言的变化开始。 1. 异步支持 Python 语言已更改为通过添加表达式和类型来适应 asyncio。更具体地说,它被更改为支持协程作为一流的概念。反过来,协程是 asyncio 程序中使用的并发单元。 可以使用“async for”表达式遍历异步迭代器。 异步上下文管理器是可以等待进入和退出方法的上下文管理器。“async with”表达式用于创建和使用异步上下文管理器。 2. 异步模块 “asyncio”模块提供函数和对象,用于使用异步编程范例开发基于协程的程序。具体来说,它支持带有子进程(用于执行命令)和流(用于 TCP 套接字编程)的非阻塞 I/O。

    1.3K20编辑于 2023-02-27
  • 来自专栏小阿祥架构专栏

    并发编程】异步编程CompletableFuture实战

    的方法命名可以掌握不带Async的方法,比如thenAccept,表示该方法将继续在当前执行CompletableFuture的方法线程中执行带Async的方法,比如thenAcceptAsync,表示异步 API//无返回值,默认使用ForkJoinPool.commonPool() 作为它的线程池执行异步代码public static CompletableFuture<Void> runAsync <Void> runAsync(Runnable runnable, Executor executor)//有返回值,默认使用ForkJoinPool.commonPool() 作为它的线程池执行异步代码 CompletableFuture核心API实战(1)supplyAsync方法实战,有返回值,默认使用ForkJoinPool.commonPool() 作为它的线程池执行异步代码。 ,第二部异步 CompletableFuture<CompletableFuture<Product>> future = CompletableFuture.supplyAsync((

    1.4K01编辑于 2023-05-28
  • 来自专栏携程技术

    干货 | KotlinNative 异步并发模型初探

    而 Kotlin/Native与 Kotlin/JVM 的异步并发模型也有着极大的不同,因此如果要实践 Kotlin Multiplatform,则事先对 Kotlin/Native的异步并发模型进行探究就显得很有必要 基于 JVM 的异步并发机制,Kotlin/JVM 提供了通过编译器与线程池实现的协程来完成异步并发任务。 这样的机制避免了 JVM重量级锁的出现,个人认为这确实是 Kotlin/JVM 的协程相对于传统 JDK 中异步并发 API 的一个优势(详见文末参考文档链接 1、2)。 但 Kotlin/Native 程序作为一种原生二进制程序,相当于是重新开发的一门语言,由于没有现成的类似于 JVM 提供的异步并发机制作为依赖,所以它必须实现一套自己的异步并发模型。 2)Kotlin/Native 自身提供给了我们两套异步并发的 API,首先是协程,但 Kotlin/Native 的协程与 Kotlin/JVM的协程区别很大,Kotlin/Native 的协程是单线程的

    2.2K20发布于 2020-03-11
  • 来自专栏PHP在线

    PHP异步并发扩展Swoole

    heartbeat_idle_time (心跳最大空闲时间) add heartbeat_check_interval (心跳定时检测时间) Swoole介绍: Swoole是一个PHP的C扩展,可用来开发PHP的高性能高并发 Swoole的网络IO部分基于多线程的epoll/kqueue事件循环,是全异步非阻塞的。 业务逻辑部分既可以像node.js一样全异步回调执行,也可以多进程同步阻塞方式来运行。 这样既保证了Server能够应对高并发和大量TCP连接。又保证业务代码仍然可以简单的编写。 server 示例代码: Php代码 <? php //server.php$serv = new swoole_server("0.0.0.0", 9501);$serv->set(array('worker_num' => 2,));$serv

    2.2K60发布于 2018-03-08
  • 来自专栏用户4773577的专栏

    鸿蒙Next异步并发 (Promise和asyncawait)

    异步和多线程有啥区别?原理异步开发:异步编程以非阻塞的方式运行代码,当程序发起一个可能耗时的操作(如网络请求、文件读写)时,不会等待该操作完成,而是继续执行后续代码。 Promise提供了一个状态机制来管理异步操作的不同阶段,并提供了一些方法来注册回调函数以处理异步操作的成功或失败的结果。 Promise语法糖,使得编写异步代码变得更加简单和易读。 /utils/ToastUtil";@ObservedV2export class Student { @Trace name: string = '' @Trace age: number = 0 } //async/await是一种用于处理异步操作的Promise语法糖,以同步的方式编写异步操作的代码 async update() { try { let stu: Student

    27810编辑于 2025-06-28
  • 来自专栏Niuery的技术日记

    并发编程 --- 异步方法的异常处理

    如果调用两个异步方法,每个都会抛出异常,该如何处理呢? 这可以避免在异步操作中丢失异常信息。 如果需要在异步方法中处理多个异常,可以使用 catch 块来捕获不同类型的异常,并根据需要执行不同的处理操作。 如果需要在异步方法中执行一些异步操作,并且这些操作都必须成功才能继续执行下一步操作,那么可以使用 Task.WhenAll 方法来等待所有异步操作完成。 如果需要在异步方法中执行多个异步操作,并且这些操作中的任何一个失败都将导致整个操作失败,那么可以使用 Task.WhenAny 方法来等待第一个异步操作完成。 掌握这些处理技巧可以帮助编写更可靠、更健壮的异步代码。

    80330编辑于 2023-10-22
  • 来自专栏AI SPPECH

    MCP Client 的并发异步设计

    本文深入剖析 MCP v2.0 框架下 Client 的并发异步设计方案,从架构设计、通信机制到性能优化,全面覆盖并发异步的核心技术。 新要素 1:全异步通信栈 从网络通信到模型调用,全栈采用异步设计 支持多种异步协议,如 HTTP/2、WebSocket 和 gRPC 减少线程阻塞,提高系统吞吐量 新要素 2:协程优化 充分利用协程技术 MCP Client 的并发异步架构包括以下核心组件: 异步通信层:负责处理与 MCP Server 和模型的异步通信 协程调度器:负责协程的调度和管理 并发安全层:确保并发访问的数据一致性和线程安全 HTTP 客户端 支持 HTTP/2 协议,提高通信效率 实现了连接池管理,减少连接建立和关闭开销 提供了简洁的异步 API,便于使用 支持上下文管理器,确保资源正确释放 3.2.2 协程调度器实现 client.post("/post", json={"test": "data"}), client.get("/delay/2"), # 延迟 2 秒的请求

    20310编辑于 2026-01-07
  • 来自专栏cloud stdio

    【python】多进程并发异步调用

    print("b function") A() B() 对于线程并发这一块我也搞不清楚,问了百度不好使,最后问了gpt 要让两个函数互不影响地运行,可以使用 Python 的 multiprocessing = multiprocessing.Process(target=B) p1.start() p2.start() p1.join() p2.join() 这里我们将函数 因此,在需要充分利用多核 CPU 的情况下,使用多进程并发是更好的选择。 需要注意的是,使用多进程会产生额外的开销,因为每个进程都需要分配独立的内存空间和 Python 解释器。 因此,在需要大量计算的情况下,使用多进程并发可以获得更好的性能表现,但是在处理 IO 密集型任务时,多进程并发的开销可能会超过性能提升的收益。 在这种情况下,使用异步编程模型(例如 asyncio)可能更适合。

    67140编辑于 2023-08-08
  • 来自专栏咖啡拿铁

    异步化,高并发大杀器

    4.异步非阻塞:异步非阻塞这也是现在高并发编程的一个核心,也是今天主要讲的一个核心。好比你去商店买衣服,衣服没了,你只需要给老板说这是我的电话,衣服到了就打。 2.同步阻塞 PK 异步非阻塞 上面已经看到了同步阻塞的效率是多么的低,如果使用同步阻塞的方式去买衣服,你有可能一天只能买一件衣服,其他什么事都不能干,如果用异步非阻塞的方式去买,买衣服只是你一天中进行的一个小事 下面我会从上面几个方面进行异步化的介绍. 4.servlet异步化 对于Java开发程序员来说servlet并不陌生吧,在项目中不论你使用struts2,还是使用的springmvc,本质上都是封装的 ## 4.1springmvc异步化 现在其实很少人来进行serlvet编程,都是直接采用现成的一些框架,比如struts2,springmvc。 /blob/master/README_ZH.md 能很好的支持异步化 6.最后 异步化并不是高并发的银弹,但是有了异步化的确能提高你机器的qps,吞吐量等等。

    1.1K30发布于 2019-10-13
领券