当前位置: 首页 > wzjs >正文

网站设计收费模式龙岗网站制作讯息

网站设计收费模式,龙岗网站制作讯息,做网站是如何赚钱的,网站建设方案书1500字Rust 学习笔记:通过 Send 和 Sync trait 实现可扩展并发性 Rust 学习笔记:通过 Send 和 Sync trait 实现可扩展并发性Send trait:允许在线程之间转移所有权Sync trait:允许多线程访问手动实现 Send 和 Sync 是不安全的练习题 Rust…

Rust 学习笔记:通过 Send 和 Sync trait 实现可扩展并发性

  • Rust 学习笔记:通过 Send 和 Sync trait 实现可扩展并发性
    • Send trait:允许在线程之间转移所有权
    • Sync trait:允许多线程访问
    • 手动实现 Send 和 Sync 是不安全的
    • 练习题

Rust 学习笔记:通过 Send 和 Sync trait 实现可扩展并发性

处理并发的选项并不局限于语言或标准库。

你可以编写自己的并发特性,也可以使用其他人编写的并发特性。

Send 和 Sync trait 是 Rust 标准库下的 marker trait。

Send trait:允许在线程之间转移所有权

Send trait 表明实现 Send 的类型的值的所有权可以在线程之间转移。

几乎每个 Rust 类型都是 Send,但也有一些例外,比如 Rc<T>。

Rc<T> 不能实现 Send,因为如果你克隆了一个 Rc<T> 值,并试图将克隆的所有权转移给另一个线程,两个线程可能同时更新引用计数。出于这个原因,Rc<T> 是为在单线程情况下使用而实现的。

Rust 的类型系统和 trait 约束确保不会将非 Send 类型跨线程发送。

任何完全由 Send 类型组成的类型也会自动标记为 Send。

几乎所有基本类型都实现了 Send,原始指针除外。

Sync trait:允许多线程访问

Sync trait 表明,从多个线程引用实现 Sync 的类型是安全的。

换句话说,如果 &T(对 T 的不可变引用)实现了 Send,则任何类型 T 都实现了 Sync,这意味着引用可以安全地发送到另一个线程。

与 Send 类似,基本类型都实现了 Sync,完全由实现 Sync 的类型组成的类型也实现了 Sync。

智能指针小结:

  • Rc<T>:没有实现 Send,也没有实现 Sync。
  • RefCell<T>:实现 Send(如果 T 实现 Send),没有实现 Sync。在运行时执行的借用检查的实现不是线程安全的。
  • Mutex<T>:实现了 Send 和 Sync,可以用于与多个线程共享访问。
  • MutexGuard<'a, T>:实现 Sync(如果 T 实现 Sync),没有实现 Send。

手动实现 Send 和 Sync 是不安全的

因为完全由实现 Send 和 Sync 的其他类型组成的类型也会自动实现 Send和 Sync,所以我们不需要手动实现这些特性。

作为 marker trait,它们甚至没有任何方法来实现。它们只是用于执行与并发相关的不变量。

手动实现这些特征涉及实现 unsafe 的 Rust 代码。构建不由 Send 和 Sync 部分组成的新并发类型需要仔细考虑以维护安全保证。

练习题

参考视频:

  1. https://www.bilibili.com/video/BV1LdovYrEVw

假设你正在设计一个数据库连接的 API:

struct DbConnection { /* ... */ }
impl DbConnection {fn query(&self) -> DbResult {/* ... */}
}

你的数据库不支持从同一连接进行并发查询。DbConnection 应该实现哪些 marker trait?

答:Send。

http://www.dtcms.com/wzjs/598443.html

相关文章:

  • 知网网站开发wordpress divi教程
  • 商业空间设计网站大全没有版权可以做视频网站吗
  • 网站和网页的关系济南网站建设托管
  • 企业网站用什么做二次开发最快简单又快的科学小制作
  • 淘宝客建站还能赚钱吗1元二手已备案域名
  • 做拍福利爱福利视频网站诸城做网站找个人
  • 怎么给网站添加关键词安庆做网站企业
  • 国外营销型网站免费发布信息网站大全注册
  • 图片网站怎样选择虚拟主机制作网站的花多少钱
  • 如何进入优容网站工作心得体会简短的
  • 凡客诚品网站设计重庆seo网络推广
  • 苏州h5网站建设做黄图网站接广告好赚吗
  • 小说网站开发过程 实训报告效果图制作公司怎么拉业务
  • 兰州做网站优化单位网站建设方案
  • 怎么做网站登陆战wordpress怎么制作菜单
  • 制作网站的收获体会互联网小白怎么入门
  • 东营做网站seo的网页设计作业水晶
  • 化妆品商城网站建设策划方案外贸社交营销代运营
  • 做外贸建网站鹤壁建设网站推广公司
  • wordpress 调用置顶大庆网站建设优化
  • 备案的网站程序上传新特网架公司
  • 在线做初中题网站建设电子网站试卷a
  • 做网站需要服务器农业方面的网站建设升级
  • 金属行业网站模板下载生产厂家上什么网站做推广好
  • 中介网站设计如何制作wordpress模板下载地址
  • 室内设计网站国外内蒙古建设项目环保备案网站
  • 佛山企业门户网站建设山东外贸网站建设怎么样
  • 网站制作软件下载最近中文字幕视频2019一页
  • 门户网站简介百度站长平台删站
  • 做网站是用什么语言厦门行业网站建设