摘要: ## 概述 为了避免多个线程同时更新 UI,导致不可预知的错误;所以现今几乎所有的 GUI 框架都只允许在主线程修改 UI;因此这些框架都选择了消息驱动编程模型; 消息驱动编程模型有以下几个组件: 1. 消息队列:存储待处理的消息 2. 分发器:将不同事件分发到不同的业务逻辑单元 3. 消息通道: 阅读全文
posted @ 2023-06-12 16:46 ijkzen 阅读(24) 评论(0) 推荐(0) 编辑
摘要: ## 概述 由于不同的进程在运行过程中处于不同的用户空间,无法相互感知,因此就诞生 `IPC`;信息的传播需要介质,几种跨进程通信的机制就是使用了不同的介质,由于介质的不同,所以传输的方式,传输的频率、传输的数据和适用范围都有不同; ## 文件 放在物理磁盘上的文件作为不同进程都能访问到的东西,可以 阅读全文
posted @ 2023-06-07 12:11 ijkzen 阅读(135) 评论(0) 推荐(0) 编辑
摘要: ## 同步和互斥的区别 ### 同步 某些进程为完成同一任务需要分工协作,由于合作的每一个进程都是独立地以不可预知的速度推进,这就需要相互协作的进程在某些协调点上协 调各自的工作。当合作进程中的一个到达协调点后,在尚未得到其伙伴进程发来的消息或信号之前应阻塞自己,直到其他合作进程发来协调信号或消息后 阅读全文
posted @ 2023-05-28 12:33 ijkzen 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 挂起与恢复的功能特征 以同步的方式执行异步代码 线程调度 挂起函数 Kotlin 使用 suspend 关键词标记一个函数为挂起函数; GlobalScope.launch { // 协程体 aaa() bbb() } suspend fun aaa(){ delay(100) bbb() prin 阅读全文
posted @ 2021-11-24 16:06 ijkzen 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 基础类分析 在讲解协程间是如何进行互动之前需要对协程的一些基础类进行讲解; CoroutineContext 协程的上下文,可以看作是一个 map,在协程执行过程中充当设置项集合的角色; get(key) 重载运算符方法,根据 key 获取相应的 element; fold(initial, ope 阅读全文
posted @ 2021-11-14 17:25 ijkzen 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 诞生背景 要想了解 Kotlin Coroutine,首先需要了解Coroutine 这一概念; 进程的诞生 上世纪 60 年代早期,计算机控制软件已从监视器控制软件进化为执行控制软件;CPU 跑的越来越快,但是 CPU 并没被很好的利用;此时的矛盾是日益增长的 CPU 性能与落后的多任务处理机制之 阅读全文
posted @ 2021-10-31 22:14 ijkzen 阅读(150) 评论(0) 推荐(0) 编辑
摘要: Type Type是Java中所有类型的父接口。 其子类和子接口如下: Class<T> TypeVariable<D> ParameterizedType GenericArrayType WildcardType Type 只有一个默认方法: // 返回描述类型的字符串 default Stri 阅读全文
posted @ 2021-05-23 22:11 ijkzen 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 概论 当前版本com.squareup.retrofit2:retrofit:2.9.0 虽然okhttp很好用,但是开发者所需要关心的细节太多了,所以square又开发了retrofit简化流程。 retrofit主要使用流程如下: interface GithubService { @GET(" 阅读全文
posted @ 2021-02-27 14:33 ijkzen 阅读(436) 评论(0) 推荐(0) 编辑
摘要: okhttp详解 概论 okhttp是一个网络库,其功能主要有两点: 请求的发起与响应的接收 多个请求的管理 当前版本为4.9.0。 请求的发起与响应的接收 这个过程是U型的,如拆轮子系列:拆 OkHttp中的流程图所显示的: 先是向下一步一步地加工报文,到最底端将报文发送到服务端,然后拿到服务器返 阅读全文
posted @ 2021-02-23 16:01 ijkzen 阅读(1763) 评论(0) 推荐(0) 编辑
摘要: 概论 RecyclerView是一个在有限窗口显示大量数据的灵活视图; 绘制过程 ChildView的实际绘制过程由LayoutManager所掌控; onMeasure @Override protected void onMeasure(int widthSpec, int heightSpec 阅读全文
posted @ 2021-02-07 17:59 ijkzen 阅读(817) 评论(0) 推荐(0) 编辑