1、本课程使用go语言作为编程语言
(1)优点
2、Threads
(1)分布式系统的RPC首先应该考虑现线程
(2)分布式系统考虑线程的原因
a、IO并发
overlapping of the progress of different activities , allowing one activity awaiting and other activities can proceed
例如下图RPC时候,一个线程调用rpc了会一直等待着
b、multiple core parallelism
并行
实体物理cpu定义的线程,真正意义上的同时进行,就像你电脑的cpu的多核多线程,用多线程提高效率
c、便利性
例如我想周期性地执行一些代码
事件驱动
多线程的好处
(3)多线程编程挑战
(3.1)全局变量n递增问题
第一个线程load x进入寄存器
然后add 1,进入寄存器
然后store进入寄存器
(3.2)互斥锁
(3.3)锁协调问题
a、通道方式解决
b、同步条件变量
c、等待组
(4)死锁