Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
b2e57736
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b2e57736
编写于
10月 20, 2014
作者:
B
bors
浏览文件
操作
浏览文件
下载
差异文件
auto merge of #18145 : neilpa/rust/master, r=steveklabnik
Noticed a type while reading through the intro
上级
6353465f
66939dfe
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
9 deletion
+9
-9
src/doc/intro.md
src/doc/intro.md
+9
-9
未找到文件。
src/doc/intro.md
浏览文件 @
b2e57736
...
...
@@ -442,21 +442,21 @@ It gives us this error:
```
It mentions that "numbers moved into closure environment". Because we referred
to
`numbers`
inside of our
`proc`
, and we create t
en
`proc`
s, we would have ten
references. Rust detects this and gives us the error: we claim that
`numbers`
has ownership, but our code tries to make ten owners. This may cause a safet
y
problem, so Rust disallows it.
to
`numbers`
inside of our
`proc`
, and we create t
hree
`proc`
s, we would have
three references. Rust detects this and gives us the error: we claim that
`numbers`
has ownership, but our code tries to make three owners. This ma
y
cause a safety
problem, so Rust disallows it.
What to do here? Rust has two types that helps us:
`Arc<T>`
and
`Mutex<T>`
.
"Arc" stands for "atomically reference counted." In other words, an Arc will
keep track of the number of references to something, and not free the
associated resource until the count is zero. The 'atomic' portion refers to an
Arc's usage of concurrency primitives to atomically update the count, making it
safe across threads. If we use an Arc, we can have our t
en references. But, an
Arc does not allow mutable borrows of the data it holds, and we want to modify
what we're sharing. In this case, we can use a
`Mutex<T>`
inside of our Arc. A
Mutex will synchronize our accesses, so that we can ensure that our mutation
doesn't cause a data race.
safe across threads. If we use an Arc, we can have our t
hree references. But,
an Arc does not allow mutable borrows of the data it holds, and we want to
modify what we're sharing. In this case, we can use a
`Mutex<T>`
inside of our
Arc. A Mutex will synchronize our accesses, so that we can ensure that our
mutation
doesn't cause a data race.
Here's what using an Arc with a Mutex looks like:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录