写点什么

协程

0 人感兴趣 · 77 次引用

  • 最新
  • 推荐

在 Python 中如何使用并发模型编程

关于什么是并发模型,我在这里引用 Go 语言联合创造者 Rob Pike 的一段话:

Tars-Cpp 协程实现分析

本文介绍了协程的概念,并讨论了 Tars Cpp 协程的实现原理和源码分析。

如何在 lua 中设置计时器

在Lua中设置计时器的常用方式是使用coroutine(协同程序)和系统时间函数。以下是一个示例:

https://static001.geekbang.org/infoq/47/476dbadb37abc79ba42a21d962cd4c12.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

《深入理解高并发编程:JDK 核心技术》- 冰河新书上市

用户头像
冰河
03-17

《深入理解高并发编程》系列第2册—《深入理解高并发编程:JDK核心技术》来了,结合《深入理解高并发编程:核心原理与案例实战》一书,深入理解并发编程的核心原理、案例实战和系统架构,再熟悉或精通JDK中提供的各种并发编程类库和线程池

https://static001.geekbang.org/infoq/74/7474ca7e4dd2c911888b959c801e3623.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

如何理解高性能服务器的高性能、高并发?

作为国内品牌服务器厂商,蓝海大脑液冷GPU服务器拥有大规模并行处理能力和无与伦比的灵活性。它主要用于为计算密集型应用程序提供足够的处理能力。GPU的优势在于可以由CPU运行应用程序代码,同时图形处理单元(GPU)可以处理大规模并行架构的计算密集型任务。

https://static001.geekbang.org/infoq/5e/5ecc61077dc258be0dd42a9944e52491.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【高并发】深度解析 ScheduledThreadPoolExecutor 类的源代码

用户头像
冰河
2022-10-24

在【高并发专题】的专栏中,我们深度分析了ThreadPoolExecutor类的源代码,而ScheduledThreadPoolExecutor类是ThreadPoolExecutor类的子类。今天我们就来一起手撕ScheduledThreadPoolExecutor类的源代码。

https://static001.geekbang.org/infoq/f1/f1b9e56160532255ec06c2993e2e404b.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Goroutine 是什么?进程、线程、协程又是什么?有什么区别和联系?

用户头像
王中阳Go
2022-10-16

这篇文章通过对比的方式介绍了进程、线程、协程各自的概念和特点。举了一个非常有趣的例子介绍“进程和线程的区别和联系”。也详细说明了为什么有了线程机制还要引入协程机制,协程的优势是什么?

https://static001.geekbang.org/infoq/5e/5ecc61077dc258be0dd42a9944e52491.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【高并发】ScheduledThreadPoolExecutor 与 Timer 的区别和简单示例

用户头像
冰河
2022-10-12

JDK 1.5开始提供ScheduledThreadPoolExecutor类,ScheduledThreadPoolExecutor类继承ThreadPoolExecutor类重用线程池实现了任务的周期性调度功能。在JDK 1.5之前,实现任务的周期性调度主要使用的是Timer类和TimerTask类。本文,就简单介绍下ScheduledThread

https://static001.geekbang.org/infoq/f7/f77a32220e0abde925ca63c645e568b8.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java19 正式 GA!看虚拟线程如何大幅提高系统吞吐量

用户头像
PPPHUANG
2022-09-21

今天 Java19 正式发布,带来了一个 Java 开发者垂涎已久的新特性—— 虚拟线程。本文将通过对虚拟线程的介绍,以及与 Go 协程的对比来带大家尝鲜 Java19 虚拟线程。

https://static001.geekbang.org/infoq/d5/d58a6b7f8c9d4edf46ae696fe6c66275.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

精通高并发与内核 | Linux 内核协程解析

协程是轻量级的线程,拥有自己的执行代码块,但是却不需要系统调用来切换,只需要在用户空间切换

NtyCo 纯 C 协程的原理分析

用户头像
C++后台开发
2022-09-17

一、协程的由来   从IO同步和异步的优缺点分析如下:   IO同步优点就是sockfd管理方便,操作逻辑清晰;缺点是程序依赖epoll_wait的循环响应速度,程序性能差。   IO异步优点就是子模块好规划,程序性能高;缺点就是逻辑理解有点难度

https://static001.geekbang.org/infoq/5e/5ecc61077dc258be0dd42a9944e52491.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【高并发】亿级流量场景下如何为 HTTP 接口限流?看完我懂了!!

用户头像
冰河
2022-08-30

在互联网应用中,高并发系统会面临一个重大的挑战,那就是大量流高并发访问,比如:天猫的双十一、京东618、秒杀、抢购促销等,这些都是典型的大流量高并发场景。

Kotlin 协程解析系列(上):协程调度与挂起

Kotlin协程是学习Kotlin的重中之重,也是运用koitlin的关键。本篇文章主要介绍Kotlin协程的创建、协程调度与协程挂起部分内容,对相关内容进行细致解析。

https://static001.geekbang.org/infoq/2f/2f6f24947586db478b8fa71fa3bd179e.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【高并发】别闹了,要实现亿级流量下的分布式限流,这些算法你必须掌握!!

用户头像
冰河
2022-08-08

在互联网应用中,高并发系统会面临一个重大的挑战,那就是大量流高并发访问,比如:天猫的双十一、京东618、秒杀、抢购促销等,这些都是典型的大流量高并发场景。

https://static001.geekbang.org/infoq/b7/b78c618fd21ad11a1c28dd539dab895c.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

运筹帷幄决胜千里,Python3.10 原生协程 asyncio 工业级真实协程异步消费任务调度实践

我们一直都相信这样一种说法:协程是比多线程更高效的一种并发工作方式,它完全由程序本身所控制,也就是在用户态执行,协程避免了像线程切换那样产生的上下文切换,在性能方面得到了很大的提升。毫无疑问,这是颠扑不破的业界共识,是放之四海而皆准的真理。

https://static001.geekbang.org/infoq/6a/6a4b4be99ca4afeba0e0fec5efa9aa6d.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

物无定味适口者珍,Python3 并发场景 (CPU 密集 /IO 密集) 任务的并发方式的场景抉择 (多线程 threading/ 多进程 multiprocessing/ 协程 asyncio)

一般情况下,大家对Python原生的并发/并行工作方式:进程、线程和协程的关系与区别都能讲清楚。甚至具体的对象名称、内置方法都可以如数家珍,这显然是极好的,但我们其实都忽略了一个问题,就是具体应用场景

https://static001.geekbang.org/infoq/2f/2f6f24947586db478b8fa71fa3bd179e.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【高并发】如何实现亿级流量下的分布式限流?这些理论你必须掌握!!

用户头像
冰河
2022-07-25

短时间内巨大的访问流量,我们如何让系统在处理高并发的同时还能保证自身系统的稳定性?有人会说,增加机器就可以了,因为我的系统是分布式的,所以可以只需要增加机器就可以解决问题了。但是,如果你通过增加机器还是不能解决这个问题怎么办呢?

https://static001.geekbang.org/infoq/fd/fdde01792a1f1da91e390cac9eac4fa9.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java 不支持协程?那是你不知道 Quasar!

用户头像
码农参上
2022-06-22

Java原生不支持协程怎么办,那就来看看Quasar吧!跟着本文,简要了解Quasar框架的简单使用,学习用协程来解决并发问题~

【协程】LifecycleScope 源码解析

用户头像
yechaoa
2022-06-15

使用协程,相信很多同学已经信手拈来了,但是也有很多同学是不知道LifecycleScope的。

【协程】ViewModelScope 源码解析

用户头像
yechaoa
2022-06-14

使用协程,相信很多同学已经信手拈来了,但是关于ViewModelScope,可能很多同学在用,但却不知道原理,今天来一探究竟。

https://static001.geekbang.org/infoq/5e/5ecc61077dc258be0dd42a9944e52491.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【高并发】优化加锁方式时竟然死锁了!!

用户头像
冰河
2022-05-26

今天,在优化程序的加锁方式时,竟然出现了死锁!!到底是为什么呢?!经过仔细的分析之后,终于找到了原因。

https://static001.geekbang.org/infoq/5e/5ecc61077dc258be0dd42a9944e52491.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【高并发】什么是 ForkJoin?看这一篇就够了!

用户头像
冰河
2022-05-20

在JDK中,提供了这样一种功能:它能够将复杂的逻辑拆分成一个个简单的逻辑来并行执行,待每个并行执行的逻辑执行完成后,再将各个结果进行汇总,得出最终的结果数据。有点像Hadoop中的MapReduce。

https://static001.geekbang.org/infoq/5e/5ecc61077dc258be0dd42a9944e52491.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【高并发】高并发环境下诡异的加锁问题(你加的锁未必安全)

用户头像
冰河
2022-05-13

并发编程中,不能使用多把锁保护同一个资源,因为这样达不到线程互斥的效果,存在线程安全的问题。相反,可以使用同一把锁保护多个资源。那么,如何使用同一把锁保护多个资源呢?又如何判断我们对程序加的锁到底是不是安全的呢?我们就一起来深入探讨这些问题

https://static001.geekbang.org/infoq/5e/5ecc61077dc258be0dd42a9944e52491.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【高并发】ThreadLocal 学会了这些,你也能和面试官扯皮了!

用户头像
冰河
2022-05-07

对共享变量加锁虽然能够保证线程的安全,但是却增加了开发人员对锁的使用技能,如果锁使用不当,则会导致死锁的问题。而ThreadLocal能够做到在创建变量后,每个线程对变量访问时访问的是线程自己的本地变量。

https://static001.geekbang.org/infoq/80/805c3b0c61b16695c0832e9f79c8e17a.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

一个学渣对于 stack 的顿悟(3):溯源 goroutine 堆栈

用户头像
计算机漫游
2022-05-05

本文以探求 goroutine 堆栈在进程虚拟地址空间中的位置为诉求,对源代码进行有目的的展开,并最终找到内存分配的内核接口 mmap ......

https://static001.geekbang.org/infoq/5e/5ecc61077dc258be0dd42a9944e52491.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【高并发】如何使用互斥锁解决多线程的原子性问题?这次终于明白了!

用户头像
冰河
2022-04-28

如何解决线程切换带来的原子性问题呢?答案是 保证多线程之间的互斥性。也就是说,在同一时刻只有一个线程在执行! 如果我们能够保证对共享变量的修改是互斥的,那么,无论是单核CPU还是多核CPU,都能保证多线程之间的原子性了。

https://static001.geekbang.org/infoq/5e/5ecc61077dc258be0dd42a9944e52491.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【高并发】为何在 32 位多核 CPU 上执行 long 型变量的写操作会出现诡异的 Bug 问题?看完这篇我懂了!

用户头像
冰河
2022-04-21

我们在32位多核CPU的计算机上以多线程的方式读写long类型的共享变量时,线程已经将变量成功写入了内存,但是重新读取出来的数据和之前写入的数据不一致,这到底是为什么呢?

协程_协程技术文章_InfoQ写作社区