第12章 Go语言并发编程-【千锋教育】Go语言开发实战(慕课版)同步教案
2023-03-22
|
13页
|
111人阅读
|
0人下载
教辅
资源信息
| 学段 | 中职 |
| 学科 | 职教专业课 |
| 课程 | 程序设计基础 |
| 教材版本 | - |
| 年级 | 高三 |
| 章节 | - |
| 类型 | 教案 |
| 知识点 | - |
| 使用场景 | 同步教学 |
| 学年 | 2023-2024 |
| 地区(省份) | 全国 |
| 地区(市) | - |
| 地区(区县) | - |
| 文件格式 | DOCX |
| 文件大小 | 197 KB |
| 发布时间 | 2023-03-22 |
| 更新时间 | 2023-04-09 |
| 作者 | 北京千锋互联科技有限公司 |
| 品牌系列 | - |
| 审核时间 | 2023-03-22 |
| 下载链接 | https://m.zxxk.com/soft/38223766.html |
| 价格 | 2.00储值(1储值=1元) |
| 来源 | 学科网 |
|---|
内容正文:
千锋教育
Go语言开发实战
教学设计
课程名称: Go语言开发实战
授课年级: ______ ______________ ___
授课学期: ___ ____ ________ ________
教师姓名: ______________ ________
2019年09月01日
课程名称
第12章 Go语言并发编程
计划学时
4学时
内容分析
本章主要介绍并发与并行、进程和线程、Goroutine、channel、time包中与channel相关的函数、select分支语句、sync语句
教学目标
与
教学要求
要求学生理解并发与并行,理解进程和线程,掌握Go语言中Goroutine和channel,掌握select分支语句,掌握sync包的应用。
教学重点
进程和线程、Goroutine、channel、time包中与channel相关的函数、select分支语句、sync语句
教学难点
Goroutine、channel、time包中与channel相关的函数、select分支语句、sync语句
教学方式
课堂讲解及ppt演示
教
学
过
程
第一课时
(并发与并行、进程和线程、Goroutine、channel)
回顾内容,引出本课时主题
1.回顾内容,引出本课时的主题
上节学习了Go语言数据库编程。本节将开始介绍Go语言并发编程的学习。并发指在同一时间内可以执行多个任务。大家可以观察到,电脑、平板、手机,它们都可以一边播放音乐一边玩游戏,同时还能上网聊天,每个程序都要同时渲染画面和发出声音。随着科技的发展与人类需求的增长,并发变得越来越重要。一台Web服务器会一次处理成千上万的请求。出色的并发性是Go语言的特色之一,本节详细介绍Go语言的并发机制。
2.明确学习目标
(1) 能够理解单道程序与多道程序
(2) 能够掌握并发与并行的区别
(3) 能够理解进程和线程
(4) 能够掌握Goroutine
(5) 能够掌握channel
知识讲解
· 单道程序与多道程序
回到在Windows和Linux出现之前的古老年代,计算机编程使用单道程序设计模型,既串行,所有任务一个一个排序执行。一个任务运行完成之后,另一个任务才会被读取。即使CPU空闲,在人机交互时必须阻塞,不能同时播放音乐和浏览网页。显然,串行程序在很多场景下无法满足客户的要求
现代计算机编程采用多道程序设计模型,多个任务轮流使用CPU (当下常见CPU为纳秒级, 1秒可以执行近10亿条指令)。人们在使用计算机时可以边听音乐边上网,是因为人眼的反应速度是毫秒级,所以看似任务同时在运行。这种可以概括为,宏观并行,微观串行。
· 并发与并行的区别
在讨论如何在Go中进行并发处理之前,首先必须了解什么是并发,以及它与并行性有什么不同。
1. 并发
并发(Concurrency)是同时处理许多个任务。实际上是把任务在不同的时间点交给处理器进行处理。在微观层面,任务不会同时运行。
2. 并行
并行(Parallelism)是把一个任务分配给每一个处理器独立完成。多个任务一定是同时运行。并行就是同时做很多事情。乍听起来可能与并发类似,但实际上是不同的。
串行、并行、并发的区别如图所示。
生活中也有类似的场景,比如许多人去打水,多人排队使用一个水龙头,每个人一次性打满水后才轮到下一个人,这种情况就是串行。显然排在后面的人需要等很久才能打到水。
当多人使用一个水龙头时,每个人只能一次接水5秒,用完水后再去排队,这种情况就是并发。此时排在后面的人不需要等太久就能用到水了,宏观上看他们可以同时用到水。
当4个人同时使用4个水龙头打水时,这种情况就是并行,要求打水人数和水龙头数量相等才能做到。但是实际情况是需要打水的人往往要比水龙头的数量多,所以多数情况还是需要并发处理。
· 程序与进程
程序是编译好的二进制文件,在磁盘上,不占用系统资源(CPU、内存、设备)。进程是活跃的程序,占用系统资源。在内存中执行。程序运行起来,产生一个进程。程序就像是剧本,进程就像是演戏,同一个剧本可以在多个舞台同时上演。同样,同一个程序也可以加载为不同的进程(彼此之间互不影响),比如同时运行两个QQ。
· 进程与线程的区别
线程也叫轻量级进程,通常一个进程包含若干个线程;线程可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,比如音乐进程,可以一边查看排行榜一边听音乐,互不影响。
· 进程与线程的联系
进程和线程是操作系统级别的两个基本概念。计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。进程就
资源预览图
1
2
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。