GO语言工程实践课后作业:实现思路、代码以及路径记录 | 青训营

45 阅读1分钟

课程目录

01.语言进阶

从并发编程视角带大家了解Go高性能的本质。

02.依赖管理

了解GO语言依赖管理的演进路线。

03.测试

从单元测试实践出发,提升大家的质量意识。

04.项目实战

通过项目需求、项目拆解、逻辑设计、代码实现带领大家感受真正的项目开发。

01.语言进阶

  • 引入:并发编程——快

1.0 并发 VS 并行

  • 并发:多线程程序在一个核的CPU上运行 多线程在一核CPU上运行.jpg

  • 并行:多线程程序在多个核的CPU上运行 多线程在多核CPU的运行.jpg

  • 解释:并发是指一个处理器同时处理多个任务。 并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。 并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。 来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。
  • 总结:GO可以充分发挥多核优势,高效运行

1.1 Goroutine

Goroutine.jpg

  • 协程:用户态,轻量级线程,栈KB级别
  • 线程:内核态,线程跑多个协程,栈MB级别

1.2 CSP(Communicating Sequential Processes)

CSP.jpg

Go提倡 通过通信 共享内存,而不是 通过共享内存 实现通信。

1.3 Channel

make(chan元素类型,[缓冲大小])

  • 无缓冲通道:make(chan int)
  • 有缓冲通道:make(chan int,2)

Channel.jpg