1. terminal 不需要加锁
2. Buffer 可以采用加锁的方式实现, 但也可以采用下面代码的方式实现,即:
a. 将要读或写的共享变量先读出来,
b. 然后判断读出来的本地变量的范围是否有效,
c. 采用本地变量参与后续运算
d. 最终将本地变量赋值给共享变量
3. 需要思考的地方
a. 数据加锁和过程加锁方式
b. 当一个过程需要处理多个共享变量时,是否给整个过程加一个粗粒度的锁,即如何思考过程(操作多个共享变量)的多线程安全性
1. terminal 不需要加锁
2. Buffer 可以采用加锁的方式实现, 但也可以采用下面代码的方式实现,即:
a. 将要读或写的共享变量先读出来,
b. 然后判断读出来的本地变量的范围是否有效,
c. 采用本地变量参与后续运算
d. 最终将本地变量赋值给共享变量
3. 需要思考的地方
a. 数据加锁和过程加锁方式
b. 当一个过程需要处理多个共享变量时,是否给整个过程加一个粗粒度的锁,即如何思考过程(操作多个共享变量)的多线程安全性