【crossbeam系列】4 crossbeam-channel:加强版channel

本文探讨了标准库channel的不足,如不支持MPMC、缺少select功能等,并介绍了crossbeam库中加强版的channel,它提供统一的Sender类型,支持MPMC、线程间引用传递及select操作,性能更优。
摘要由CSDN通过智能技术生成

这一期的内容会轻松一些,讲讲crossbeam中的channel。可是有人就要问了在标准库里面已经有了std::sync::mpsc,为什么crossbeam又要搞出一套channel呢?首先我们来看看标准库中的channel有哪些不足吧

标准库中channel的不足

  1. Receiver不能被clone,是MPSC的channel。理想状况我们希望能有MPMC的channel

  2. Sender和Receiver不是Sync

  3. 在Go语言中,channel一般和select语句一起使用,但是标准库中的channel并不支持select

  4. 有限容量(Bounded)的channel内部实现就是一个简单的Mutex<VecDeque<T>>,性能比Go语言的channel还差

  5. 有Sender(=Unbouded)和SyncSender(=Bounded)的区分,用起来不统一。

crossbeam中加强版的channel

首先,无论容量是否有限,Sender类型统一成一种,这样用起来就很方便。其次对有限容量的channel进行了重写(还记得上一期我们讲的Deque其实就是为了消除Mutex<VecDeque<T>>产生的瓶颈么,这里也类似。对于1-3点:(在此之前我们先简单讲下如何创建crossbeam的channel)

目前市场上唯一一款真正意义上的PDF编辑器,可以对现有的任何PDF文档内容进行简单、高效率的编辑修改。 主要功能优势 1、轻松修改PDF文档内容 2、以所见即所得的方式实现可靠、方便的编辑 3、无需了解PDF格式知识 4、快捷、完美的PDF页面显示 5、简洁、清晰的用户界面 6、体积小巧、轻松下载 2.1版本的最新功能 支持渐变对象 支持文本对象到图形对象的转换 非图形编辑模式下添加图形 一键去除试用标记 支持对象对齐 调整图像和渐变对象的透明度 检查更新功能 改进的文本对象创建 属性列表设置 新增快捷键 全新的图标 BUG修复 2.1版本新功能 支持渐变对象 允许用户创建和编辑渐变对象。Foxit PDF Editor为用户提供了两种渐变方式,一种是线性渐变,另一种是径向渐变。 支持文本对象到图形对象的转换 允许用户把选中的文本对象转换成图形对象,方便进行印前处理,特别是当计算机不支持或无法显示某些内嵌字体的情况。Foxit PDF Editor同时为用户提供一个菜单选项,允许将PDF文件中的所有文本一次性转换为图形对象, 而后另外生成一个新的文档。 非图形编辑模式下添加图形 该版本允许用户直接在Foxit PDF Editor主窗口中添加一些简单的形状图形。 一键去除试用标记 注册用户可以通过选择“Help”>“Remove Evaluation Marks”,一次性删除Editor 2.1产生的所有试用标记。 支持对象对齐 用户可以使用工具栏中的对象对齐按钮自动排列对齐选中的对象,使得PDF页面更加整齐美观。 调整图像和渐变对象的透明度 允许用户设置图像的透明度。在透明度文本框里输入0%--100%之间的任何值调整图像透明度,图像则从完全透明变至完全不透明。 检查更新功能 单击“帮助”菜单下的“检查更新”,您可随时检查下载最新版本的Foxit PDF Editor。 改进的文本对象创建 新版本在“添加新文本对象”对话框中添加了一个对象属性选项,方便用户为添加的文本对象设置相关参数,如字体大小,文本模式,字符间距,颜色等。 < 属性列表设置 用户可以通过“选项”对话框来设置是否在启动时显示“属性列表”。 新增快捷键 为了使用户能更方便的使用Foxit PDF Editor, 新版本中添加了一些快捷键操作。如:ESC键可保存并退出即时编辑模式,Alt+ Delete 组合键则用前景色填充选择部分,Ctrl + Delete 组合键用背景色填充选择部分,Ctrl +D 为取消选择。 全新的图标 全新的Foxit PDF Editor图标蕴含着新版本更加强大的编辑功能。 BUG修复
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值