Rust语言的futures库
这个包是用来编写异步代码的
它包括几个核心概念
future
stream
sinks
executor
io
channel
它们依赖于task系统
一种轻量级线程
task模块包括
用来创建task的spawn
提供上下文包括唤醒task的方法的context
唤醒task的方法waker
Stream模块包括
用来产生一系列值的stream特性
用于链接组合Stream的扩展特性
用于把迭代器转成stream的iter函数
sink模块包括
用于写异步数据的sink特性
用于链接组合sink的扩展特性
从一次处理一项数据的函数创建sink的unfold函数
executor可为以下几种
用block_on函数直接在当前线程执行
ThreadPool用spawn_OK方法创建task去pollfuture
spawn的spawn_obj,和没有实现send的spawn_local_obj
单线程的localPool用于iotask
它的spawner方法可以拷贝它变成spawn类型的localSpawner,就相当于localpool有了spawn方法可以创建task并作为executor身份block_on运行future并得到结果了
也可以用join宏执行多个future并等待全部完成
如果想对future结果进一步处理
可以用select宏来选择future
在代码形式上
如果future是从异步函数返回的并且定义在select之外
必须实现unpin和fusedfuture特性
如果future不是异步函数返回的,而是已经ready的
就不用实现这两个特性
PIN可以用box::pin 和pin_mut宏分别PIN在堆或栈上
用fuse方法实现fusedfuture特性
如果函数返回的future表达式在select之内
可以不用实现unpin,但是要fuse
如果想按照代码写的顺序处理future结果
可以用select_biased宏和select一样它会把future结果PIN在栈上
对于stream,可以用select_stream来随机处理不同类型future结果
类似于select_all
channel模块
用于task之间通讯
有两种channel
task之间发送一个值的oneshot
多个发送者一个消费者的队列的mpsc
它们都有各自channel方法创建channel
oneshot的channel类似标准库的channel
它的接收方实现future特性
mpsc的channel分为绑定未绑定的
绑定的会有一定量的缓存
接收方没来得及处理信息
缓存满了发送方就不能继续发送
两者步调必须一致
未绑定的会缓存通讯信息
只要接收方没关闭
就可以一直发送信息
所以消息堆积可能造成oom
它的发送方实现sink
接收方实现stream
112页完整版PPT导读区块链和互联网已经在方方面面改变着企业个人经济和社会。而元宇宙代表着区块链的未来,代表着互联网的终点,然而元宇宙的概念却又扑簌迷离,众说纷纭文章来源本文作者王喜文,工学博士,情
安徽穷小子,逆袭成清华学霸,被任正非重用,帮助华为数次转型2000年,他带领团队前往欧洲卖基站,面对几大国外巨头的联合夹击,他夸下海口将华为的无线通讯领域做到全球前三。当时,不仅外界觉得他在说大话,就连华为高层,也觉得他这个牛皮吹得有点大
万门大学童哲跑路,茅侃侃自杀,很少人懂得教育规律教育原理惊闻万门大学童哲跑路,他开创万门大学之时,我在某在线教育平台任职市场总监,2014年我写出在线教育水深火热,出现巨大断裂带。我那时潜伏在线教育,很少人知道我懂教育规律原理。我推测童
科学家找到快速射电重复暴身份证央广网北京3月21日消息快速射电暴(FRB)是无线电波段最为剧烈的爆发现象,探索其起源是当今天文学领域最大的热点前沿之一。近日,科学杂志报道了中国科学院国家天文台李菂团队首次提出能
1999元的天玑8100旗舰电竞手机?realme真我GTNeo3正式发布智东西(公众号zhidxcom)作者云鹏编辑心缘智东西3月22日消息,realme今天刚刚发布了真我GTNeo3系列电竞手机,首发了150W有线快充,这也是realme首款搭载联发
新能源汽车使用心得体会应该说我算是中国第一批开新能源汽车的人了,中国新能源汽车从2014年开始起步,最早开的是,2015年买的北汽ec160,当时那个心酸啊,冬天的时候只能开100公里,简直是续航恐惧症
新能源车企扎堆涨价车主当黄牛加价转卖!厂商放出大招受电池上游原材料价格波动,国内新能源整车企业,面临较大的成本上涨压力,国内一众车企近段时间选择集体涨价。目前,小鹏特斯拉比亚迪零跑几何长城奇瑞等一众新能源车企,都宣布涨价数千至数万
新能源车市为何涨声一片?过去的一周除了登上热搜的央视315晚会之外,汽车圈也是热闹非凡,一周之内9家车企官宣涨价,助推了这波从去年年底开启的新能源车涨价潮。涨价的9家车企很有代表性,既有特斯拉比亚迪,也有
新能源车的有力竞争者ID。4CROZZ这次想换个新新能源汽车。就到网上看了看,感觉现在的车怎么都差不多有个样子,也没有看上特别满意的。躺在床上刷视频的时候看到的了一款车感觉不错,于是我打算去看一下这款ID。4CROZZ
新能源汽车迎来涨价潮?聊聊AITO问界M5的质价比受芯片短缺原材料价格上涨以及国补退坡等因素影响,近期新能源车型涨声不断,尤其是特斯拉在短短7天内连续涨价三次,这无疑会影响消费者的购车选择,将更加关注产品的质价比,近期启动交付的A
山东科技创新成果亮相迪拜!2020迪拜世博会中国馆山东周共享发展新机遇齐鲁网闪电新闻3月22日讯创新是引领发展的第一动力。山东深入实施创新驱动发展战略,着力推动科技自立自强,创新能力不断提升。近年来,我省组织实施100项左右重大科技创新工程项目,31