使用协程的过程中,最常遇到的就是处理异步任务,先来前期的一些动作。设置BaseActivity 这里为什么要用覆写上下文的方式,是因为这里可以加入统一的异常 handler处理,但请注意,这里的handler 只适用于处理launch 的协程,async的协程异常处理参看最后 topParentJob 这里非常重要,如果你想让你的job 在生命周期结束的时候cancel 能管用,你必须加上这个,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-02 10:12:14
                            
                                26阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Android 协程代替 Handler 的应用与优势
在Android开发中,处理异步任务通常会用到`Handler`,这是一个允许我们在特定线程或消息队列中发送和处理消息的工具。然而,随着Kotlin的流行和协程的出现,开发者们发现协程提供了更为简洁、易读的方式来处理异步编程。在本文中,我们将探讨如何使用协程代替`Handler`,并给出代码示例和相关图表。
## 什么是协程?
协程            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-10-14 04:56:23
                            
                                37阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Android 协程代替 Handler
## 引言
在 Android 开发中,我们经常需要处理异步任务,例如网络请求、数据库访问、耗时计算等等。为了在处理异步任务时能够方便地更新 UI,Android 提供了 Handler 类。然而,在使用 Handler 时,我们需要处理一些繁琐的问题,例如线程间通信和内存泄漏。为了简化这些问题,Google 在 Android 3.0 引入了 A            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-26 12:07:50
                            
                                400阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            代码实例import time
def demo4():
    """
    这是最终我们想要的实现.
    """
    import asyncio  # 引入 asyncio 库
    
    async def washing1():
        await asyncio.sleep(3)  # 使用 asyncio.sleep(), 它返回的是一个可等待的对象
               
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-22 21:35:07
                            
                                103阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            基础概念1.定义:纤程,微线程。是为非抢占式多任务产生子程序的计算机组件。协程允许不同入口点在不同位置暂停或开始,简单来说,协程就是可以暂停执行的函数。2.协程原理 : 记录一个函数的上下文栈帧,协程调度切换时会将记录的上下文保存,在切换回来时进行调取,恢复原有的执行内容,以便从上一次执行位置继续执行。3.协程优缺点优点:协程完成多任务占用计算资源很少由于协程的多任务切换在应用层完成,因此切换开销            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-21 13:30:28
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            明天咱们来聊聊Kotlin的协程Coroutine。如果你还没有接触过协程,举荐你先浏览这篇入门级文章What? 你还不晓得Kotlin Coroutine?如果你曾经接触过协程,置信你都有过以下几个疑难:协程到底是个什么货色?协程的suspend有什么作用,工作原理是怎么的?协程中的一些要害名称(例如:Job、Coroutine、Dispatcher、CoroutineContext与Corou            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-05 12:23:48
                            
                                257阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            什么是协程协程并不是kotlin中才有的概念,在Python、Go等中也有协程。初学kotlin协程对这个概念很迷惑,比如官方文档上说:协程是一种轻量级的线程,我们很容易将协程和线程联系起来产生误解,认为协程也是一种线程。其实协程的实现也是离不开线程的,它也是跑在线程中,可以是单线程也可以是多线程,简单来说协程就是一个线程的框架。我们可以在实际的开发中去理解它,在android中避免不了要使用网络            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-04 13:46:03
                            
                                185阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            0x0、引言上节《枯燥的Kotlin协程三部曲(上)——概念启蒙篇》,追根溯源,先了解并发相关的概念,尔后引出Kotlin协程:真正的协程:一种 非抢占式 / 协作式 的 任务调度模式,程序可 主动挂起或恢复执行;基于线程,相对于线程轻量很多,可理解为 用户层 模拟线程操作;上下文切换由用户去控制,避免大量中断参与,减少线程上下文切换与调度消耗的资源;Kotlin中的「假协程」语言级别并没有实现一            
                
         
            
            
            
            额,听说 协程是个轻量级的线程.咱也不懂,一个应用呢,后台就是个进程,然后这个进程能开一堆线程,线程能做耗时任务,Android 有很多地方都比较需要线程,比如:定时任务,耗时任务,网络请求~但是呢,一般开多了就容易GG,不是有个面试题经常问多线程并发么,反正我没遇到~然后呢,kotlin这个协程感觉是轻量化这个线程,然后就能无限开咯,老套路了:没有好的解决方案那就从根本上替换他!翻译过来就是优化            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-20 05:47:31
                            
                                70阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Flutter已经开源了三年,但是最近两年才开始在开源社区活跃起来,尤其是最近还发布了Preview 1版本。作为可以实现一套代码同时在iOS、Android平台上运行的又一个新的UI框架,Flutter提供给开发者的不仅仅是高速实现,还有高质量、流畅的UI。免费开源的协议对于开发者来说也很友好。 本文将从Flutter架构理念与UI渲染逻辑,来解释为什么Flutter的渲染效率非常高,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-17 11:33:35
                            
                                195阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            基于原文修整  一些 API 启动长时间运行的操作(例如网络 IO、文件 IO、CPU 或 GPU 密集型任务等),并要求调用者阻塞直到它们完成。协程提供了一种避免阻塞线程并用更廉价、更可控的操作替代线程阻塞的方法:协程 挂起。  协程通过将复杂性放入库来简化异步编程。程序的逻辑可以在协程中顺序地表达,而底层库会为我们解决其异步性。该库可以将用户代码的相关部分包装为回调、订阅相关事件、在不同线程(            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-15 14:06:07
                            
                                80阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈、局部变量和指令指针。 线程和进程各自有什么区别和优劣呢?进程是资源分配的最小单位,线程是程序执行的最小单位。进程有自己的独立地址空间,每启动一个进程,系统就会为它            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-26 06:47:29
                            
                                24阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、进程和线程,协程简单对比1.1 进程和线程进程是Windows系统中的概念,包含着运行一个程序所需要的基本资源。一个正在运行的应用程序在操作系统中被视为一个进程(是系统进行资源分配和调度的单位),进程可以包括一个或多个线程(通过CPU调度和分派线程,这些线程共享进程资源)。1.2 线程和协程Unity是单线程(没用多线程概念,可以写成多线程thread,但是只有主线程才能访问Unity3D的对            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-28 01:03:54
                            
                                82阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             什么是协程?协程被称为“轻量级线程”或者“用户态线程”。最近协程在高并发编程领域大放异彩,如Golang天生就支持协程,Lua和Python也支持协程。但其实协程并不是最近才出现的新技术,恰恰相反,协程是一项古老的技术。早期版本的Linux并不支持线程,这时就出现代替线程的轻量级线程–协程。比较有名的有: GNU Pth 和 Libtask(Go语言的作者之一Russ Cox的作品)。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-17 14:27:38
                            
                                43阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            线程并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的  多线程之间共享全局变量在一个进程内的所有线程共享全局变量,很方便在多个线程间共享数据缺点就是,线程是对全局变量随意更改可能造成多线程之间对全局变量的混乱(即线程非安            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-29 08:50:23
                            
                                55阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                    在实际开发中,进程、线程很少用到,除非那些对项目性能要求特别高的,有的开发几年都不到用。进程、线程、协程的概念:        进程:一个运行的程序(代码)就是进程,没有运行的代码加程序。进程是系统资源分配的最小单位,进程拥            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-28 02:22:33
                            
                                51阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             【并发编程二十】协程(coroutine)一、线程的缺点二、协程三、优点四、个人理解五、协程库1、window系统2、unix系统(包括linux的各个版本)2.1、makecontext2.2、swapcontext2.3、setcontext3、第三方库3.1、Boost.Coroutine23.2、Boost.Context3.3、libco3.4、libgo3.5、libaco            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-04 17:37:55
                            
                                139阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 如何实现Android协程多线程
## 流程步骤
| 步骤 | 描述 |
| ---- | ---- |
| 1. | 导入Kotlin协程库 |
| 2. | 创建协程作用域 |
| 3. | 启动协程并指定调度器 |
| 4. | 在协程中执行耗时操作 |
| 5. | 更新UI或返回结果 |
## 代码示例及解释
### 步骤1:导入Kotlin协程库
```kotlin
impl            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-07-08 03:42:39
                            
                                29阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            每个 Android 应用进程在创建时,会同时创建一个线程,我们称之为主线程,负责更新 UI 界面以及和处理用户之间的交互,因此,在 Android 中,我们又称之为 UI 线程。一个进程中 UI 线程只有一个,为了不造成界面卡顿、提高用户体验,我们势必要将一些耗时操作交由子线程来执行。使用子线程的方式主要分两种:直接使用 Thread 和 Runnable 等创建子并使用线程使用线程池创建并使用            
                
         
            
            
            
            # Android协程线程切换
在Android开发中,协程是一种轻量级的线程管理工具,可以简化异步编程,优化性能。但是,在实际开发中,我们可能会遇到需要在不同线程之间切换的情况。本文将介绍如何在Android协程中实现线程切换,并提供代码示例。
## 协程线程切换原理
在协程中,我们可以使用`withContext`函数来切换线程。`withContext`函数接受一个`Coroutine            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-05-01 03:51:23
                            
                                141阅读