go语言之并发

Posted liucsxiaoxiaobai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言之并发相关的知识,希望对你有一定的参考价值。

一 :并发基础

1 并发和并行

并发和并行是两个不同的概念:
1 并行意味着程序在任意时刻都是同时运行的:
2 并发意味着程序在单位时间内是同时运行的
详解:
  并行就是在任一粒度的时间内都具备同时执行的能力:最简单的并行就是多机,多台机器
并行处理;SMP 表面上看是并行的,但由于是共享内存,以及线程间的同步等,不可能完全做
到并行
  并发是在规定的时间内多个请求都得到执行和处理,强调的是给外界的感觉,实际上内部
可能是分时操作的 。并发重在避免阻塞,使程序不会因为 个阻 而停止处理。并发典型的应
用场景:分时操作系统就是一种并发设计(忽略多核 CPU )。
  并行是硬件和操作系统开发者重点考虑的问题,作为应用层的程序员,唯一可以选择的就
是充分借助操作系统提供的 API 和程序语言特性,结合实际需求设计出具有良好并发结构的程
序,提升程序的并发处理能力。现代操作系统能够提供的最基础的并发模型就是多线程和多进
程;编程语言这一层级可以进一步封装来提升程序的井发处理能力。
  在当前的计算机体系下:并行具有瞬时性,并发具有过程性;并发在于结构,井行在于执
行。应用程序具备好的并发结构,操作系统才能更好地利用硬件并行执行,同时避免阻塞等待,
合理地进行调度,提升 CPU 利用率。应用层程序员提升程序并发处理能力的一个重要手段就是
为程序设计良好的并发结构。

2 goroutine 

未完待续 。。。。。。。

 

 

二:并发范式

 

 

 

三:context标准库

 

 

 

四:并发模型

 

以上是关于go语言之并发的主要内容,如果未能解决你的问题,请参考以下文章

Go语言基础之并发

Go语言之Go语言并发

GO语言并发编程之互斥锁读写锁详解

Go语言学习之旅--并发编程

Go语言学习之旅--并发编程

Go语言学习之旅--并发编程