一 问题引出
1 需求
要求统计 1-9000000000 的数字中,哪些是素数?
2 分析思路
a 传统的方法,使用一个循环,循环的判断各个数是不是素数。它的缺点是很慢。
b 使用并发或者并行的方式,将统计素数的任务分配给多个 goroutine 去完成,这时就会使用到goroutine。如果是4核CPU,则速度提高 4 倍。
二 goroutine-基本介绍
1 进程和线程介绍
a 进程就是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位。
b 线程是进程的一个执行实例,是程序执行的最小单位,它是比进程更小的能独立运行的基本单位。
c 一个进程可以创建销毁多个线程,同一个进程中的多个线程可以并发执行。
d 一个程序至少有一个进程,一个进程至少有一个线程。
2 程序、进程和线程的关系示意图
三 并发和并行
1 多线程程序在单核上运行,就是并发。
2 多线程程序在多核上运行,就是并行。
3 示意图
4 小结
并发:因为是在一个cpu上,比如有10个线程,