随笔分类 - 异步编程
摘要:缘起 libco 协程库在单个线程中实现了多个协程的创建和切换。按照我们通常的编程思路,单个线程中的程序执行流程通常是顺序的,调用函数同样也是 “调用——返回”,每次都是从函数的入口处开始执行。而libco 中的协程却实现了函数执行到一半时,切出此协程,之后可以回到函数切出的位置继续执行,即函数的执
阅读全文
摘要:阿里妹导读:刚刚,阿里巴巴正式对外开源了基于 Apache 2.0 协议的协程开发框架 coobjc,开发者们可以在 Github 上自主下载。coobjc是为iOS平台打造的开源协程开发框架,支持Objective-C和Swift,同时提供了cokit库为Foundation和UIKit中的部分A
阅读全文
摘要:1、在用户空间中实现线程 (1)特点:把整个线程包放在用户空间,内核对线程包一无所知。从内核角度考虑,就是按正常的方式管理,即单线程进程(存在运行时系统) (2)优点: 1、用户级线程包可以在不支持线程的操作系统上实现。 2、线程切换至少要比陷入内核要快一个数量级。在线程完成运行时,它调用threa
阅读全文
摘要:一、构建流程 1、(异步)数据源(请求)的构建:Promise的构建并执行请求; 2、处理流程的构建:then将处理函数保存; 二、处理: 1、请求的响应返回; 2、调用后继处理流程。 三、 1、构建源promise的同时发起了异步请求; 2、构建后继处理流程是在一瞬间完成的; 声明式编程语言: 处
阅读全文
摘要:函数式编程与异步编程 函数式编程中,异步编程是惰性计算的根源,惰性计算是函数式异步编程的支持; 1、高阶函数都具有计算构建的功能; 2、函数式编程语言对异步编程的支持是通过惰性求值机制实现的; 3、惰性计算的变量在语言或机制的底层需要保存;在接口层面,通常是作为高阶函数的参量,需要特定的修饰符修饰;
阅读全文
摘要:这篇文章不是针对当前版本 Swift 3 的,而是对预计于 2018 年发布的 Swift 5 的一些特性的猜想。如果两年后我还记得这篇文章,可能会回来更新一波。在此之前,请当作一篇对现代语言并行编程特性的不太严谨科普文来看待。 2016-12-20 • 能工巧匠集 CPU 速度已经很多年没有大的突
阅读全文
摘要:Programs take input and produce output. The output is the result of doing something with the input. Input, transform, output, done. This pattern is ea
阅读全文
摘要:To put it another way, the output at any one time is the result of combining all inputs. The output is a function of all inputs up to that time. 摘要: 1
阅读全文
摘要:【译】异步JavaScript的演变史:从回调到Promises再到Async/Await https://www.i-programmer.info/programming/theory/8864-managing-asynchronous-code-callbacks-promises-a-as
阅读全文
摘要:ReactiveX is a library for composing asynchronous and event-based programs by using observable sequences. 问题:1、回调地狱;2、逻辑分散; 传统方案:回调; 改进方案:promise; 改进方
阅读全文
摘要:响应式编程的三个层次: 1、将事件和数据抽象为流; 2、使用声明式(函数式)编程简化流的处理流程; 3、将各类输入(流)封装(抽象)为流的端口。 4、是交互式编程开发的利器; 1、基于事件和异步; 响应编程能够简化编程,它依赖于事件,代码运行的顺序不是代码行的顺序,而是和一个以上的事件有关,这些事件
阅读全文
摘要:异步模式:任务的发起与完成分离;任务执行+完成事件+响应; 请求 + 响应 + 任务 + 时序。 同步就是要等待方法的返回,异步就是方法执行过后立即返回,操作真正完成时会有事件发生 异步模式的常规处理: 1、面向函数:hook函数注入; 2、面向对象:接口注入; 异步模式的高级处理: promise
阅读全文
摘要:相信在过去的一段时间里,对 RxSwift 多少有过接触或耳闻,或者已经积累了不少实战经验。此文主要针对那些在门口徘徊,想进又拍踩坑的同学。 为什么要学习 RxSwift 当决定做一件事情时,至少要知道为什么。RxSwift 官网举了几个例子,比如可以统一处理 Delegate, KVO, Noti
阅读全文
摘要:Reactive Extensions (Rx) 原来是由微软提出的一个综合了异步和基于事件驱动编程的库包,使用可观察序列和LINQ-style查询操作。 使用Rx, 开发者可以用Observables来表达异步数据流,使用LinQ操作查询异步数据流,使用Schedulers参数化异步数据流中并发。
阅读全文
摘要:In computing, reactive programming is an asynchronous programming paradigm concerned with data streams and the propagation of change. - Reactive progr
阅读全文