编程笔记
白天
夜间
首页
下载
阅读记录
书签管理
我的书签
添加书签
移除书签
11. 并发编程
浏览
64
扫码
分享
2022-07-29 12:44:27
11.1 go语言的goroutine
11.2 使用waitGroup
11.3 互斥锁和读写锁
11.4 channel用于goroutine间通信
11.5 select
若有收获,就点个赞吧
0 人点赞
上一篇:
下一篇:
风变编程
Go
Go by Example
Go Python
日志
课程介绍
Code-Python
PythonStart
Code-Go
Golang
Chapter 02
Chapter 04
Chapter 06
Chapter 07
Chapter 08
Chapter 09
Chapter 10
Chapter 11
Chapter 12
Chapter 13
PackageTest
OldPackageTest
Part 1 开发环境搭建
1. 前言
2. 开发环境
Part 2 go语言基础
1. go语言介绍
2. 变量和常量
3. 计组基本知识
4. 基本数据类型
4.1 go基本数据类型
4.2 数据类型的转换
4.3 运算符和表达式
5. 字符串的基本操作
6. 条件/循环语句
7. 复杂数据类型
7.1 python的数组细节
7.2 go语言的数组
7.3 go语言的切片
7.4 切片原理
7.5 go语言的map
8. 面向对象
8.1 结构体定义和使用细节
8.2 结构体也有继承?
8.3 结构体标签
8.4 结构体方法
8.5 你可能并不懂python的鸭子类型
9.函数
10. 异常和编码规范
10.1 go语言编码规范
10.2 python编码规范
11. 并发编程
11.1 go语言的goroutine
11.2 使用waitGroup
11.3 互斥锁和读写锁
11.4 channel用于goroutine间通信
11.5 select
Part 3 grpc入门和进阶
1. python下的rpc开发
1.1 rpc基础
1.2 rpc、http以及restful之间的区别
1.3 通过httpserver实现rpc
1.5 基于xml的rpc调用
1.6 json实现rpc的调用
1.7 zerorpc实现rpc调用
1.8 如何选择rpc解决方案
2. go语言的rpc开发体验
2.1 go语言的rpc之hello world
2.2 rpc支持json
2.3 基于http的rpc
2.4 进一步改进rpc调用过程
3. rpc开发过程中的体验
4. grpc入门
4.1 什么是grpc和protobuf
4.2 python下protobuf体验
4.3 python下的grpc开发体验
4.5 go下grpc开发体验
4.6 grpc的四种数据流
5. protobuf3和grpc进阶
5.1 protobuf3语法
5.2 grpc进阶
5.2.1 python的grpc结合asyncio
5.2.2 go控制grpc的metadata
5.2.3 python中使用metadata
5.2.4 grpc拦截器 - go
5.2.5 grpc拦截器-python
5.2.6 token认证
5.2.7 grpc验证器
5.2.8 gprc中的异常处理
5.2.9 grpc的超时机制
Part 4 需求分析和架构设计
0. 电商管理系统与微服务
1. 前后端分离的系统如何管理文档 -yapi
Part 5 peewee和gin入门
1. peewee入门 - python
2. gin入门 - go
2.1 快速入门
2.2 url和路由分组
2.3 获取参数
2.6 中间件和next函数
2.7 设置静态文件路径和html文件
2.8 优雅重启或停止
Part 6 用户服务
1. 用户服务开发 - python
1.2 日志库 - loguru入门
2. 用户web接口开发 - go
2.1 go日志库
2.3 自定义验证器
2.8 阿里云发送短信
2.9 redis的安装
3. 服务注册与发现
3.1 什么是服务注册与发现
3.3 consul的api接口
3.5 go操作consul
3.6 grpc下的健康检查
The Way to Go
日志
Chapter 04 基本结构和数据类型
4.1 文件名、关键字与标识符
4.2 Go 程序的基本结构和要素
4.3 常量
4.4 变量
4.5 基本类型和运算符
4.6 字符串
4.7 strings 和 strconv 包
Chapter 05 控制结构
5.1 if-else 结构
5.2 测试多返回值函数的错误
5.3 switch 结构
5.4 for 结构
5.5 Break 与 continue
5.6 标签与 goto
Chapter 06 函数
6.1. 介绍
6.2 函数参数与返回值
6.3 传递变长参数
6.4 defer 和追踪
6.5 内置函数
6.6 递归函数
6.7 将函数作为参数
6.8 闭包
6.9 应用闭包:将函数作为返回值
6.10 使用闭包调试
6.11 计算函数执行时间
6.12 通过内存缓存来提升性能
Chapter 07 数组与切片
7.1 声明和初始化
7.2 切片
7.3 For-range 结构
7.4. 切片重组(reslice)
7.5 切片的复制与追加
7.6 字符串、数组和切片的应用
Chapter 08 Map
8.1 声明、初始化和 make
8.2 测试键值对是否存在及删除元素
8.3 for-range 的配套用法
8.4 map 类型的切片
8.5 map 的排序
8.6 将 map 的键值对调
Chapter 09 Package
9.1 标准库概述
9.2 regexp 包
9.3 锁和 sync 包
9.4 精密计算和 big 包
9.5 自定义包和可见性
9.6 为自定义包使用 godoc
9.7 使用 go install 安装自定义包
9.8 自定义包的目录结构、go install 和 go test
9.9 通过 Git 打包和安装
9.10 Go 的外部包和项目
9.11 在 Go 程序中使用外部库
Chapter 10 结构与方法
10.1 结构体定义
10.2 使用工厂方法创建结构体实例
10.3 使用自定义包中的结构体
10.4 带标签的结构体
10.5 匿名字段和内嵌结构体
10.6 方法
10.7 类型的 String() 方法和格式化描述符
10.8 垃圾回收和 SetFinalizer
Chapter 11 接口与反射
11.1 接口是什么
11.2 接口嵌套接口
11.3 类型断言:如何检测和转换接口变量的类型
11.4 类型判断:type-switch
11.5 测试一个值是否实现了某个接口
11.6 使用方法集与接口
11.7 第一个例子:使用 Sorter 接口排序
11.8 第二个例子:读和写
11.9 空接口
11.10 反射包
11.12 接口与动态类型
11.13 总结:Go 中的面向对象
11.14 结构体、集合和高阶函数
Chapter 12 I/O数据
12.1 读取用户的输入
12.2 文件读写
12.3 文件拷贝
12.4 从命令行读取参数
12.5 用 buffer 读取文件
12.6 用切片读写文件
12.7 用 defer 关闭文件
12.8 使用接口的实际例子:fmt.Fprintf
12.9 JSON 数据格式
12.10 XML 数据格式
12.11 用 Gob 传输数据
12.12 Go 中的密码学
Chapter 13 错误处理与测试
章节说明
13.1 错误处理
13.2 运行时异常和 panic
13.3 从 panic 中恢复(Recover)
13.4 自定义包中的错误处理和 panicking
13.5 一种用闭包处理错误的模式
13.6 启动外部命令和程序
13.7 Go 中的单元测试和基准测试
13.8 测试的具体例子
13.9 用(测试数据)表驱动测试
13.10 性能调试:分析并优化 Go 程序
Chapter 14 协程与通道
章节说明
14.1 并发、并行和协程
14.2 协程间的信道
14.3 协程的同步:关闭通道-测试阻塞的通道
14.4 使用 select 切换协程
14.5 通道、超时和计时器(Ticker)
14.6 协程和恢复(recover)
14.7 新旧模型对比:任务和worker
14.8 惰性生成器的实现
14.9 实现 Futures 模式
14.10 多路复用
14.11 限制并发数
14.12 链式操作
14.13 多核运算
14.14 多核运算处理大量数据
14.15 漏桶算法 Leaky Bucket
14.16 标杆分析 Goroutines
14.17 使用 Channel 来并发读取对象
Chapter 15 网页、模板与应用
章节说明
15.1 tcp 服务器
15.2 一个简单的网页服务器
15.3 访问并读取页面
15.4 写一个简单的网页应用
15.5 让 Web 应用更加健壮
15.6 在 Web 应用中使用模板
15.7 探索 Template 扩展的功能
15.8 一个多功能的精致的 WebServer
15.9 RPC 远程调用
15.10 使用 netchan 跨网络实现消息传递
15.11 Websocket 通讯
15.12 SMTP 发送邮件
Chapter 16 常见的错误与陷阱
16.1 误用短声明导致变量覆盖
16.2 误用字符串
16.3 发生错误时使用defer关闭一个文件
16.4 何时使用 new() 和 make()
16.5 不需要将一个指向切片的指针传递给函数
16.6 使用指针指向接口类型
16.7 使用值类型时误用指针
16.8 误用协程和通道
16.9 闭包和协程的使用
16.10 糟糕的错误处理
Chapter 17 模式
17.1 关于逗号 ok 模式
17.2 defer 模式
17.3 能见度模式
17.4 操作者模式和接口
Chapter 18 性能调优
18.1 字符串
18.2 数组和切片
18.3 映射
18.4 结构体
18.5 接口
18.6 函数
18.7 文件
18.8 协程(goroutine)与通道(channel)
18.9 网络和网页应用
18.10 其他
18.11 出于性能考虑的最佳实践和建议
Chapter 19 构建完整的应用程序
19.1 简介
19.2 UrlShortener 项目介绍
19.3 数据结构分析
19.4 用户界面:Web 网页前端
19.5 数据存储 gob
19.6 使用 Goroutines 来提高性能
19.7 使用 Json 来存储
19.8 多台机器上的多线程
19.9 使用 ProxyStore
19.10 总结和优化
Chapter 21 Go在现实世界的使用
21.2 MROffice — Go 实现的 VOIP 系统
21.3 Atlassian— 虚拟机集群管理系统
21.4 Camlistore 个人住址存储系统
Matlab
日志
第1章 MATLAB基础知识
第2章 帮助系统
第3章 MATLAB基础知识
第4章 向量与多项式
第5章 矩阵运算
第6章 二维绘图
第7章 图形标注
第8章 三维绘图
第10章 矩阵分析
第11章 符号运算
第12章 数列与极限
第13章 积分
第14章 方程求解
第15章 微分方程
第16章 数据可视化分析
第17章 回归分析和方差分析
第18章 数据拟合与插值
第19章 优化设计
第20章 图形用户界面设计
第21章 Simulink仿真设计
Java
Java语言程序设计与数据结构
课后答案
第01章 计算机、程序和Java概述
第02章 基本程序设计
第03章 选择
日志
第01章 计算机、程序和Java概述
第02章 基本程序设计
第03章 选择
第04章 数学函数、字符和字符串
第05章 循环
第06章 方法
第07章 一维数组
第08章 多维数组
第09章 对象和类
第10章 面向对象思考
第11章 继承和多态
第12章 异常处理与文本I/O
附录
LintCode
学习
Java 基础语法:语法、变量与运算
刷题
0501~1000
0751~0800
0801~0850
1001~1500
1101~1150
1251~1300
1301~1350
1501~2000
1501~1550
2501~3000
2651~2700
2601~2650
2701~2750
0001~0500
0001~0050
0101~0150
0201~0250
0251~0300
0351~0400
0401~0450
0451~0500
LeetCode
LeetCode 101:A LeetCode Grinding Guide
AcWing
语法基础课
第1讲 C 入门及简单的顺序结构
第2讲 printf语句与判断结构
第3讲 循环结构
第4讲 数组
第5讲 字符串
第6讲 函数
第7讲 类、结构体、指针、引用
第8讲 STL
第9讲 位运算与常用库函数
算法基础课
代码模板
模板一:基础算法
模板二:数据结构
模板三:搜索与图论
模板四:数学知识
MySQL
Day01
Day02
Linux
Day01
Day02
数据结构
第1章 绪论
操作系统
期末考试
第1章 计算机系统概述
第2章 进程与线程
计算机网络
第1章 计算机网络体系结构
第2章 物理层
第3章 数据链路层
第4章 网络层
第6章 应用层
计算机组成原理
暂无相关搜索结果!
让时间为你证明
分享,让知识传承更久远
×
文章二维码
×
手机扫一扫,轻松掌上读
文档下载
×
请下载您需要的格式的文档,随时随地,享受汲取知识的乐趣!
PDF
文档
EPUB
文档
MOBI
文档
书签列表
×
阅读记录
×
阅读进度:
0.00%
(
0/0
)
重置阅读进度
×
思维导图备注