android 网站开发,wordpress 文章分类页面,企业网站建设 租用服务器,wordpress注册登录插件本人今年参加了很多面试#xff0c;也有幸拿到了一些大厂的offer#xff0c;整理了众多面试资料#xff0c;后续还会分享众多面试资料。 整理成了面试系列#xff0c;由于时间有限#xff0c;每天整理一点#xff0c;后续会陆续分享出来#xff0c;感兴趣的朋友可收藏 文…本人今年参加了很多面试也有幸拿到了一些大厂的offer整理了众多面试资料后续还会分享众多面试资料。 整理成了面试系列由于时间有限每天整理一点后续会陆续分享出来感兴趣的朋友可收藏 文章目录 1. 进程和线程2. 线程和协程 1. 进程和线程
1进程 进程是程序的一次执行过程是程序在执行过程中分配和管理资源的基本单位每一个进程都有自己的地址空间至少有5中状态他们是: 初始执行等待就绪终止。 2线程 线程是CPU调度和分派的基本单位它可与同属同一个进程的其他线程共享进程所拥有的全部资源。 3两者联系 线程是进程的一部分一个线程只属于一个进程但一个进程可以有多个线程 4区别 根本区别进程是操作系统资源分配的基本单位而线程是任务调度和执行的基本单位 开销方面每个进程都有独立的代码和数据空间程序上下文它们之间的切换有较大的开销线程可看作轻量级进程同一类线程共享代码和数据空间每个线程都有独立的运行栈和程序技术器线程之间的切换开销较小。 5所处环境 在操作系统中能同时运行多个进程而在同一个进程中可有多个线程执行通过CPU调度每个时间片中只有一个程序执行 6内存分配方面 系统在运行时会为每个进程分配不同的内存空间而对线程而言除了CPU外系统不会为线程分配内存线程所有的资源均来自其所属的进程线程组之间可以共享资源。
2. 线程和协程
1协程 协程这个其实很难解释Android官网貌似都是描述成轻量化线程主要讲讲它和线程的关系吧
2kotlin协程为什么比线程更轻量化 1非阻塞调度 协程是基于非阻塞的调度模型设计的。当一个协程在等待某些操作完成例如 I/O 操作或计算时它会挂起而不会占用线程的执行时间。这使得在单个线程上可以并发执行多个协程而不需要为每个协程创建一个独立的线程。相比之下线程是阻塞的执行单位当一个线程被阻塞时它会一直占用线程资源。
2更少的内存消耗 与线程相比协程通常需要更少的内存。线程在创建时需要分配一定数量的堆栈内存而协程共享线程的堆栈。这意味着可以在同一个线程上运行多个协程而不会引起堆栈内存的浪费。
3切换更轻量化 协程的切换通常比线程切换轻量级因为它不涉及操作系统的介入和保存整个线程上下文。相反它只需要保存协程的上下文这通常包括协程的局部变量、栈帧等。协程调度器可以高效地在同一个线程上切换多个协程因为它们共享相同的线程资源。
线程的切换是操作系统层面的操作。在多线程编程中操作系统负责线程的管理和调度。当一个线程被阻塞或者它的时间片耗尽时操作系统会将当前线程的上下文包括寄存器状态、堆栈指针等保存起来然后切换到另一个线程来执行。这个过程通常被称为线程切换。线程切换需要操作系统的介入因此它的开销相对较大。
3kotlin协程和线程的区别 协程能有效解决“回调地狱”的场景例如多重登录的场景先账户验证-获取用户信息-获取用户资料等如果使用线程需要判断每次成功与否然后使用handler去更新UI。 而协程其自切换主线程可以有效缓解回调地狱场景。
这些都是常问的我对这块准备的也不充分路过的大佬可以在评论区补充