Go语言编程从入门到精通(通道、缓冲通道、阻塞、控制、select)

Go (或Golang )是Google 在2007 年开发的一种开源编程语言,出自Robert Griesemer 、Rob Pike 和Ken Thompson 之手。2009 年11 月10 日, Google Open Source Blog 向全球发布了这款语言:公告指出Go 的主要目标是“兼具Python 等动态语句的开发速度和C 或C ++等编译型语言的性能与安全性”。

通道

在上一篇中学到了Gotoutine,解决处理并行操作的问题,下面学习通道,通过通道来管理Goroutine之间的通信。

1. 使用通道

2个人持有1个联名卡,卡的余额100元,他们同时从账户中取100元钱,如果交易过程不加锁,那么虽然显示余额都有100元,实际上却是不够。如果在第1个交易时候,给账户加锁,交易完成后解锁,那么就可以避免这样的问题。

Go语言编程从入门到精通(通道、缓冲通道、阻塞、控制、select)

8行:在函数中,参数是通道变量

12行:执行结束后,函数向通道发送一条消息“listen finish”

15行:定义一个存储字符串的通道,赋给变量c

16行:用Goroutine执行函数listen

17行:等待通道传过来的消息,将消息赋给变量msg

18行:输出消息内容

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C游戏编程从入门到精通 本书以C语言游戏编程入手,以102个实例,近200个函数较为系统地介绍了C基于游戏编程开发的方法与技巧,内容丰富并相互包容,相互渗透。以实际的基于不同平台的游戏制作为背景,知识阐述与实际案例结合,深入浅出,具体、直观、全面,可操作性强;是一本难得的集入门、深入到精通C游戏编程的综合书籍 目录: 目 录 第1章 猜数字游戏 1 1.1 游戏创意 1 1.2 游戏规划 2 1.3 程序实现 4 1.4 游戏调试 6 1.5 文本模式游戏制作 8 1.5.1 文本窗口函数 9 1.5.2 INT10中断功能 11 1.6 本章小结 11 第2章 用C语言函数库画图 12 2.1 设置图形模式 12 2.2 在图形模式下绘图 14 2.2.1 点 14 2.2.2 线 14 2.2.3 填充 15 2.3 在图形模式下写字 15 2.3.1 文本属性设置 15 2.4 独立图形程序的建立 16 2.5 赛车的完整图画 17 2.6 本章小结 18 第3章 简单动画 20 3.1 实现动画思路 20 3.2 屏幕保存与恢复 22 3.3 重画动画实例 24 3.4 简单动画实现 26 3.5 用异或实现赛车动画 29 3.6 本章小结 32 第4章 简单图形游戏 33 4.1 从动画到游戏 33 4.2 简单用户响应 34 4.3 接收用户信息 36 4.4 配上其它东西 39 4.4.1 配上声音 39 4.4.2 加入片头和片尾 39 4.4.3 使用随机数 41 4.5 赛车游戏 42 4.6 本章小结 43 第5章 图形模式 44 5.1 显示适配器与显示模式 44 5.1.1 显示适配器 44 5.1.2 显示模式 45 5.2 图形模式13H 45 5.3 调用BIOS中断10H 47 5.4 用汇编设置模式 47 5.4.1 使用汇编文件 47 5.4.2 行内汇编 48 5.5 本章小结 49 第6章 二维图形 51 6.1 基本图形 51 6.1.1 直接写屏 51 6.1.2 直接画点 52 6.1.3 直接画线 53 6.1.4 直接画多边形 56 6.2 图形函数优化 57 6.3 更多图形 59 6.4 本章小结 63 第7章 中文显示 64 7.1 文字显示原理 64 7.2 西文显示 65 7.2.1 使用ROM字符集 65 7.2.2 使用西文字库 67 7.3 中文平台下文字显示 69 7.3.1 汉字显示方法 69 7.3.2 中文平台判别 69 7.4 西文平台下中文调用 70 7.4.1 hzk16中文字库文件 70 7.4.2 hzk24中西文共显 73 7.5 小字库. 无字库技术 73 7.5.1 小字库技术 74 7.5.2 无字库技术 80 7.6 中文特效 83 7.6.1 多字体显示 83 7.6.2 文字格式显示 83 7.7 本章小结 84 第8章 图形文件 85 8.1 bmp文件调用 85 8.1.1 bmp文件结构 86 8.1.2 256色bmp文件显示 88 8.2 pcx文件调用 93 8.2.1 pcx文件结构和编码 93 8.2.2 pcx文件显示 96 8.2.3 播放pcx文件 98 8.3 ico文件显示 99 8.3.1 ico文件结构 99 8.3.2 ico文件显示 102 8.4 本章小结 105 第9章 动画原理 106 9.1 动画技术分类 106 9.2 重画技术 107 9.2.1 直接重画 107 9.2.2 缓冲技术 108 9.3 异或技术 110 9.4 调色板技术 112 9.4.1 调色板寄存器 112 9.4.2 调色板动画原理 115 9.4.3 调色板动画举例 116 9.5 拉屏技术 120 9.6 适用环境和效率 125 9.7 本章小结 127 第10章 子画面技术 129 10.1 子画面概述 129 10.1.1 子画面 129 10.1.2 子画面结构 131 10.1.3 面向对象 133 10.2 显示子画面 135 10.3 子画面运动 140 10.4 背景问题 141 10.5 子画面游戏 144 10.6 子画面绘制 151 10.7 本章小结 152 第11章 文件操作 154 11.1 文件基本操作 154 11.1.1 建立. 打开和关闭 154 11.1.2 读取和写入 155 11.2 游戏进度文件 155 11.2.1 两种方法 156 11.2.2 保存进度文件 157 11.2.3 读取进度文件 159 11.3 游戏数据文件 161 11.4 dbf文件 163 11.4.1 dbf文件结构 163 11.4.2 dbf文件读取 164 11.5 本章小结 165 第12章 声音技术 166 12.1 PC喇叭发声 166 12.1.1 发声系统 166 12.1.2 PC喇叭播放歌曲 167 12.1.3 扬声器背景音乐 168 12.2 声卡技术 169 12.2.1 DSP简介 169 12.2.2 DSP端口寻找 170 12.2.3 写DSP 170 12.3 播放wav文件 171 12.3.1 WAV文件格式 171 12.3.2 WAV文件播放 172 12.4 WAV背景音乐 173 12.5 本章小结 173 第13章 内存技术 175 13.1 常规内存 175 13.2 内存结构 176 13.3 XMS技术 177 13.3.1 XMS基本知识 177 13.3.2 XMS基本函数 177 13.3.3 XMS调用基本程序 177 13.3.4 将中文字库调入XMS 178 13.4 EMS技术 180 13.4.1 EMS基本知识 180 13.4.2 EMS调用基本程序 181 13.4.4 将中文字库调入EMS 183 13.4.5 全方位拉屏 184 13.5 本章小结 196 第14章 接口技术 197 14.1 键盘 197 14.1.1 键盘读取 197 14.1.2 同时按下问题 200 14.1.3 模拟按键 201 14.1.4 清空键盘缓冲 201 14.2 鼠标 202 14.2.1 鼠标基本函数 202 14.2.2 改变鼠标形状 204 14.2.4 用pcx图像做鼠标 209 14.3 串口 211 14.3.1 串口基础 211 14.3.2 利用串口传输文件 216 14.3.3 两机坦克对打例程 219 14.4 本章小结 226 第15章 界面技术 228 15.1 界面对象的结构 228 15.1.1 对象的结构分析 228 15.1.2 对象的初始化 230 15.1.3 界面设计与分析 231 15.2 对象绘制函数 232 15.2.1 填充矩形绘制函数 232 15.2.2 立体按钮绘制 233 15.2.3 窗体. 按钮和菜单绘制 233 15.3 使用链表 238 15.4 对象事件函数 239 15.4.1 按钮的基本动作 239 15.4.2 菜单的基本动作 240 15.5 进行事件检测 243 15.6 界面例程 244 15.7 游戏实例 245 15.7.1 DOS游戏界面设计 245 15.7.2 将界面插入游戏 247 15.7.3 构建个性化界面 250 15.8 本章小结 251 第16章 其他问题 252 16.1 TSR驻留 252 16.1.1 TSR基本知识 252 16.1.2 时钟驻留 253 16.1.3 热键驻留 253 16.2 简单病毒 253 16.3 OOP应用 254 16.4 各类游戏编程思路 256 16.4.1 桌面游戏编程思路 256 16.4.2 视频对战游戏编程思路 257 16.4.3 魂斗罗类游戏编程思路 259 16.4.4 玛丽. 赛车类游戏编程思路 260 16.4.5 RPG游戏编程思路 262 16.5 本章小结 263 第17章 游戏例程 265 17.1 建立通用游戏函数库 265 17.2 游戏创意 265 17.3 游戏规划 268 17.3.1 详细设计 268 17.3.2 程序流程设计 271 17.4 程序编写 272 17.4.1 文件清单 272 17.4.2 进度文件 272 17.4.3 图片文件 272 17.4.4 数据文件 273 17.4.5 代码文件 276 17.5 游戏场景 276 17.6 本章小结 281 附录A 游戏函数库 282 附录B 简单数据库 297 B.1 数据库要求 297 B.2 详细设计 298 B.3 模块设计 300 B.3.1 输入 300 B.3.2 检查 303 B.3.3 显示 307 B.3.4 删除 309 B.3.5 插入 317 B.3.6 查找 322 B.3.7 修改 329 B.3.8 排序和交换节点 337 B.3.9 保存 343 B.3.10 读取 344 B.3.11 清空 346 B.4 程序代码 346 B.5 通用数据库设计 397

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值