为了让程序更好地利用计算机资源,出现了进程/线程,以及并发模式和并行模式的概念。
一、进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。 B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 C. 一个进程可以创建和撤销多个线程;同一个进程中的多个线程之间可以并发执行。 二、并发和并行 A. 多线程程序在一个核的cpu上运行,就是并发。 B. 多线程程序在多个核的cpu上运行,就是并行。
如图所示: 三、并发和并行的效率比较 如上图所示,假定任务A/B/C均衡分配,并行效率更高,因为并发切换线程需要cpu开销(图中树立的双虚线)。
但是为什么 …
目前golang最新版本为1.17.3,经过12年的发展,生态已经成熟。
Go是一门工程语言 go诞生的初衷就是解决c/c++的各种弊端,提高生产力。
go编译速度极快,相对于c++/rust,10倍以上编译速度。 go fmt 代码格式化,代码风格统一。 自动垃圾搜集。简化c/c++的内存管理。 单一执行文件。 Go与其他语言的区别 Go vs Java: Go有内存垃圾自动处理,无虚拟机。 Go无对象编程的类class的概念,更强调struct(类似C). Go的对象继承是“鸭子原理",Java是“血缘关系". Go vs C: Go无宏定义.兼容C。基本上可以用C的风格来写Go代码。 Go vs C++: …