Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/cpp/basics/volatile.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ int main() {

由于`counter`变量被声明为`volatile`,编译器不会对其进行优化,确保每次访问都会从内存中读取值。

当然啦,即便是`volatile`关键字可以确保编译器不对变量进行优化,但上面任然存在并发问题,`counter++`操作仍然可能导致数据不一致。
当然啦,即便是`volatile`关键字可以确保编译器不对变量进行优化,但上面仍然存在并发问题,`counter++`操作仍然可能导致数据不一致。

为了解决这个问题,需要使用互斥锁、原子操作或其他同步机制。

Expand Down
2 changes: 1 addition & 1 deletion docs/cpp/memory/difference_of_pointers_and_ref.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ __Z4swapRiS_: ## @_Z4swapRiS_
## -- End function
```

在来一个函数调用引用版本swap
再来一个函数调用引用版本swap

```cpp
void call() {
Expand Down
2 changes: 1 addition & 1 deletion docs/network/transport/30_tcp_sliding_window.md
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ $$



这里面很多参数是通过实验试出来的,但是我们任然可以通过公式的特点,直观的感受为什么这个公式能适应不同网络特点。
这里面很多参数是通过实验试出来的,但是我们仍然可以通过公式的特点,直观的感受为什么这个公式能适应不同网络特点。

* 假如一个网络耗时很稳定,那是否说明 SRTT 和 RTT 之间的波动很小?

Expand Down
2 changes: 1 addition & 1 deletion docs/offer/campus_process.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ head:

#### 提前批(12 月 - 1 月)

是的,春招有少数的企业可能在昨年的 12 月就提前开始了,但是大部分来说还是 2月-3月之后开始。
是的,春招有少数的企业可能在去年的 12 月就提前开始了,但是大部分来说还是 2月-3月之后开始。

一般来说每年过完年后2周左右,很多大公司就会放出职位开始招聘了。

Expand Down
2 changes: 1 addition & 1 deletion docs/offer/chunzhao.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ head:

### 提前批(12 月 - 1 月)

是的,春招有少数的企业可能在昨年的 12 月就提前开始了,但是大部分来说还是 2月-3月之后开始。
是的,春招有少数的企业可能在去年的 12 月就提前开始了,但是大部分来说还是 2月-3月之后开始。

一般来说每年过完年后2周左右,很多大公司就会放出职位开始招聘了。

Expand Down
2 changes: 1 addition & 1 deletion docs/roadmap/basic/how_to_learn_networking.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ head:
### 4.4 深入理解计网
学习计网过程中也需要建立结构化的思维,最直观的结构就是按照计网的层次来,即:**应用层、传输层、网络层、数据链路层、物理层。**

然后在去学习每个层的功能和其中的每个协议,这个过程既可以自顶而下,也可以自底向上。
然后再去学习每个层的功能和其中的每个协议,这个过程既可以自顶而下,也可以自底向上。

**分层学习过程中除了要掌握每一层之外,最重要的其实是要学习层与层之间是如何链接起来的,比如 IP 层和数据链路层就是 ARP 协议。**

Expand Down
4 changes: 2 additions & 2 deletions docs/roadmap/cpp/linux_cpp.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ head:

#### 《C++ 沉思录》

Andrew Koenig和Barbara Moo在C++领域可以说是元老级的人物,他们两个的远见卓识在这本书里体现的淋漓尽致,C++沉思录是一本讲工程方法的书,虽然这是一本老书了,在当今C++0x标准的大背景下再看这本书,任然可以让我们更多的理解标准中一些功能的作用
Andrew Koenig和Barbara Moo在C++领域可以说是元老级的人物,他们两个的远见卓识在这本书里体现的淋漓尽致,C++沉思录是一本讲工程方法的书,虽然这是一本老书了,在当今C++0x标准的大背景下再看这本书,仍然可以让我们更多的理解标准中一些功能的作用

学好这本书,能为你的C++学习之路画龙点睛。

Expand Down Expand Up @@ -342,7 +342,7 @@ Youtube 直接搜 CppCon 即可找到。

> 这本书从我们最常接触的 HTTP、FTP、SMTP 等应用层协议讲起,可以清晰看到引入各个层的作用。

比如为了区分同一个主机的不用应用,引入了传输层,并使用不用的端口号作为区别
比如为了区分同一个主机的不同应用,引入了传输层,并使用不同的端口号作为区别

为了在不同子网间传输数据引入了网络层,并使用 IP 地址寻址路由;

Expand Down
2 changes: 1 addition & 1 deletion docs/roadmap/java/java_web.md
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ Servlet、Tomcat -> JDBC - > HTTP 协议-> Spring MVC -> Spring 全家桶。

> 这本书从我们最常接触的 HTTP、FTP、SMTP 等应用层协议讲起,可以清晰看到引入各个层的作用。

比如为了区分同一个主机的不用应用,引入了传输层,并使用不用的端口号作为区别
比如为了区分同一个主机的不同应用,引入了传输层,并使用不同的端口号作为区别

为了在不同子网间传输数据引入了网络层,并使用 IP 地址寻址路由;

Expand Down
2 changes: 1 addition & 1 deletion docs/systemdesign/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ Google 算是这方面的鼻祖,后来很多的 NewSQL 数据库基本都是

首先,第一块是硬件和资源的估算,这里的硬件和资源比较广义,包含了存储、运算力、网络等。

像 TCP/IP Model、TCP、UDP 这些都是必需要知道的东西,这样才能选择适合的网络协议栈。
像 TCP/IP Model、TCP、UDP 这些都是必须要知道的东西,这样才能选择适合的网络协议栈。

比如音视频、直播、游戏大多都是用的 UDP 来包一层可靠传输,这样可以达到更高的网络通信效率,因为 TCP 本身的慢启动、避让机制是对于整个网络最优的,有些策略对于我们应用却是不必要的,我们可以”自私“、”贪心“一点。

Expand Down
4 changes: 2 additions & 2 deletions docs/systemdesign/high_performance_backend.md
Original file line number Diff line number Diff line change
Expand Up @@ -427,8 +427,8 @@ MySQL 的主从同步依赖于 binlog,binlog(二进制日志)是 MySQL Server
2. 第二步是对一些大表进行垂直分表,**将一个表按照字段分成多表,每个表存储其中一部分字段。** 比如商品详情表可能最初包含了几十个字段,但是往往最多访问的是商品名称、价格、产地、图片、介绍等信息,所以我们将不常访问的字段单独拆成一个表。


* 由于垂直分库已经按照业务关联切分到了最小粒度,数据量任然非常大,**P9 大佬开始水平分库,比如可以把订单库分为订单1库、订单2库、订单3库......** 那么如何决定某个订单放在哪个订单库呢?可以考虑对主键通过哈希算法计算放在哪个库。
* 分完库,单表数据量任然很大,查询起来非常慢,**P9 大佬决定按日或者按月将订单分表,叫做日表、月表。**
* 由于垂直分库已经按照业务关联切分到了最小粒度,数据量仍然非常大,**P9 大佬开始水平分库,比如可以把订单库分为订单1库、订单2库、订单3库......** 那么如何决定某个订单放在哪个订单库呢?可以考虑对主键通过哈希算法计算放在哪个库。
* 分完库,单表数据量仍然很大,查询起来非常慢,**P9 大佬决定按日或者按月将订单分表,叫做日表、月表。**

分库分表同时会带来一些问题,比如平时单库单表使用的主键自增特性将作废,因为某个分区库表生成的主键无法保证全局唯一,这就需要引入全局 UUID 服务了。

Expand Down