【Rust技术公开课】港哥Elton自主开发的协程库解析

在线   2015-08-13 20:00 — 21:00

会议介绍

演讲嘉宾

钟宇腾(Elton,GitHubLinkedIn),香港大学计算机系毕业,微信游戏开发组工程师。

更多讲师信息:专访Elton:浅谈C++、Go的挑战者Rust

会议介绍

由于Go语言在国内的风靡,许多开发者开始了解和关注使用协程(Coroutine)来实现高并发程序,Rust语言在比较早期的开发版本中也在标准库提供了协程的支持,但在后来的讨论中去掉了。协程也叫用户级线程、绿色线程、纤程,这些名字都体现了协程的一些特点:存在于用户空间,切换不需要进入到内核态,轻量。但是协程相对于传统的回调,侵入性很强,导致很难兼容那些并非为协程设计的第三方库。为了在Rust中提供基本的协程支持,我与Young一起开发了coroutine-rs库,并希望在之后开发一套完善的基于协程的异步框架。

内容简要

1. 协程介绍

  · 协程简介

  · 协程的实现原理

2. coroutine-rs 库

  · 基本使用方式

  · 结合MIO实现异步I/O

  · 使用时可能出现的问题

3. 后续工作

重要提示

直播时间

8月13日(星期四)晚20点00分—— 21点00分

注意:

点击【申请参会】按钮成功报名后,「CSDN将在8月12日下午17:00之后以邮件方式发送直播地址,并于次日发送短信提醒」,请在8月13日19:50 - 20:00,使用报名所填写的邮箱地址直接登录视频直播平台。

参加流程:

报名参加 —— 邮件/短信 获得直播间入口链接 —— 观看视频 —— 实时问答

  1. 在线视频直播互动,采用三分屏模式,让您感受真实的对话环境。
  2. 本次会议机会难得,由于报名人员较多,将对申请参会者进行资格审核,请您务必填写真实个人信息以便通知(短信、邮件)及时送达,确保您的顺利参加。
  3. 邮件和短信提醒将会在课程前一天发出,具体时间以邮件通知为准!

小伙伴们快来报名参加吧!

如有任何问题,欢迎微信扫描下方二维码或加群主微信(qshuguang2008)申请入群,需备注姓名+公司+Rust

Rust

Rust 是Mozilla公司推出的一门全新的编程语言,1.0版本于2015年5月15日正式对外发布。Rust的设计目标是要做一门系统编程语言 (System Programming Language),运行性能高、避免几乎所有的段错误(Segmentation Fault)和保证线程安 全。这意味着Rust可以用于建造高效可靠的系统(Efficient and reliable systems)。

Rust与其它语言 的最大不同就是它的类型系统,所有权(Ownership)以及生存期(Lifetime),这些都来自于C/C++中的一些最佳实践 (Best practices)。对于资深的系统编程程序员来说,使用Rust时会大大减少他们查错(Debug)的时间,而对于初学者来说,他们使用 Rust写代码时,在获得与C/C++相近的运行速度的同时,也能避免因为经验不足而使程序出错(Crash)。

Rust语言设计上,包含 了各种函数式编程语言的基本特性,如默认不可变的变量(Immutable),代数数据类型(ADT,Algebraic Data Type),函数是 一等公民(First-class Function)等等的特性。并且支持泛型(Generic)和基于Trait的面向对象编程。在内存管理上,引入 了所有权(Ownership)和生存期(Lifetime),借助编译器自动分析对象的所有权传递、以及对象生存期的开始与结束,来实现内存自动管理; 并把指针分成了两类,租借指针(Borrowed Pointer)和占有指针(Owned Pointer)。租借指针顾名思义,用于在需要把一个对象 的所有权租借出去的场景,它带有对象的生存期信息,编译器会保证租借指针本身的生存期不会长于对象的生存期,因此解决了悬空指针的问题 (Dangling Pointer);占有指针(Owned Pointer)最基本的类型是裸指针(Raw Pointer),以它衍生出了 Boxed Pointer,用于管理堆上分配的内存、Rc(Reference Count)带有自动引用计数的指针、 Arc(Atomic Reference Count)同样是自动引用计数的指针,但是自动引用计数增减是原子操作,多用于在线程间共享对象的场景。未 来,Rust可能会加入一个可选的垃圾回收器,这时就会有一种叫Gc的指针,用它来管理使用垃圾回收器管理的内存。Rust还有非常强大的编译器插件 (Compiler Plugin)以及宏(Macro),提供非常大的自由度。

在项目管理上,Rust使用 Cargo(https://github.com/rust-lang/cargo)作为项目管理工具以及构建系统。另外,官方维护了 crates.io(http://crates.io)用于发布和下载第三方库,另外Cargo也支持直接从Github上自动下载依赖的源代码并编 译。Cargo是由参与开发过Ruby的Bundler项目的Yehuda Katz设计并开发的,Bundler是Ruby中非常成功的项目管理工具。

Rust 是一个由Mozilla主导的社区项目,所有人都可以在Github(https://github.com/rust-lang)上直接参与到语言的开 发中去。目前Rust的RFC(Request For Comment)已经达到1193个,这些RFC在通过之后,将会加入到Rust语言中。 (By:Elton

已报名参会人员

参会人数:
1 2 3

时间地点

  • 时间:2015-08-13 20:00 — 21:00
  • 地点:在线

联系我们

如果想在CSDN会议平台发布会议,请与我们联系: 联系人:钱曙光 电话:微信号:qshuguang2008
邮箱:qianshg#csdn.net(请将#改为@)