pull/686/head
sunface 3 years ago
commit e4f418141c

@ -4,7 +4,7 @@
并行和并发其实并不难,但是也给一些用户造成了困扰,因此我们专门开辟一个章节,用于讲清楚这两者的区别。
`Erlang` 之父 [`Joe Armstrong`](<https://en.wikipedia.org/wiki/Joe_Armstrong_(programmer)>)(伟大的异步编程先驱,开创一个时代的殿堂级计算机科学家,我还犹记得当年刚学到 `Erlang` 时的震撼respect用一张 5 岁小孩都能看的图片解释了并发与并行的区别:
`Erlang` 之父 [`Joe Armstrong`](<https://en.wikipedia.org/wiki/Joe_Armstrong_(programmer)>)(伟大的异步编程先驱,开创一个时代的殿堂级计算机科学家,我还犹记得当年刚学到 `Erlang` 时的震撼respect用一张 5 岁小孩都能看的图片解释了并发与并行的区别:
<img alt="" src="https://pic1.zhimg.com/80/f37dd89173715d0e21546ea171c8a915_1440w.png" class="center" />
@ -19,7 +19,7 @@
## CPU 多核
现在的个人计算机动辄拥有十来个核心M1 Max/Intel 12 代),如果使用串行的方式那真是太低了,因此我们把各种任务简单分成多个队列,每个队列都交给一个 CPU 核心去执行,当某个 CPU 核心没有任务时,它还能去其它核心的队列中偷任务(真·老黄牛),这样就实现了并行化处理。
现在的个人计算机动辄拥有十来个核心M1 Max/Intel 12 代),如果使用串行的方式那真是太低了,因此我们把各种任务简单分成多个队列,每个队列都交给一个 CPU 核心去执行,当某个 CPU 核心没有任务时,它还能去其它核心的队列中偷任务(真·老黄牛),这样就实现了并行化处理。
#### 单核心并发

@ -292,8 +292,7 @@ fn main() {
s.push('r');
println!("追加字符 push() -> {}", s);
s.push_str("ust!")
;
s.push_str("ust!");
println!("追加字符串 push_str() -> {}", s);
}
```

@ -261,7 +261,7 @@ mod back_of_house {
## 使用 `self` 引用模块
`self` 其实就是引用自身模块中的项,也就是说和我们之前章节的代码类似,都调用同一模块中的内容,区别在于之章节中直接通过名称调用即可,而 `self`,你得多此一举:
`self` 其实就是引用自身模块中的项,也就是说和我们之前章节的代码类似,都调用同一模块中的内容,区别在于之章节中直接通过名称调用即可,而 `self`,你得多此一举:
```rust
fn serve_order() {

Loading…
Cancel
Save