摘要:
2.25 Go并发,Goland并发 Go语言并发编程的特点 Go语言通过编译器运行时(runtime),从语言上支持了并发的特性。Go语言的并发通过goroutine特性完成。goroutine类似于线程,可以根据需要创建多个goroutine并发工作。goroutine是由Go语言的运行时调度完 阅读全文
posted @ 2022-02-28 10:21
俊king
阅读(141)
评论(0)
推荐(0)
摘要:
2.25 Go之Goroutine(轻量级线程) 网络编程 编写Socket网络程序需要提前准备一个线程池,为每个Socket的收发包分配一个线程。 线程池与CPU数量的对应关系: 开发人员需要在线程数量和CPU数量间建立一个对应关系,以保证每个任务能及时地被分配到CPU上进行处理,同时避免多个任务 阅读全文
posted @ 2022-02-28 10:21
俊king
阅读(67)
评论(0)
推荐(0)
摘要:
2.24 Go之信息管理系统 信息管理系统 基于文本界面的客户关系管理软件,该软件可以实现对客户的插入、修改和删除,并且可以打印客户信息明细表 组成模块 主模块 >customerView >菜单的显示和处理用户操作 管理模块 >customerService >提供增、删、改、查功能 用户结构体 阅读全文
posted @ 2022-02-28 10:16
俊king
阅读(56)
评论(0)
推荐(0)
摘要:
2.24 Go之Context(上下文) Context的涵义 Goroutine的上下文,包含Goroutine的运行状态、环境、现场等信息 作用: 并发控制和超时控制的标准做法 Context的定义 程序单元的一个运行状态、现场、快照 特点: 上下是指存在上下层的传递 上会把内容传递给下 程序单 阅读全文
posted @ 2022-02-28 10:15
俊king
阅读(410)
评论(0)
推荐(0)
摘要:
2.23 Go之flag包:命令行参数解析 背景阐述 在编写命令行程序(工具、server)时,我们有时需要对命令参数进行解析。Go语言中的flag包中,提供了命令行参数解析的功能 命令行工具包含的几个概念 命令行参数(或参数):是指运行程序时提供的参数; 已定义命令行参数:是指程序中通过flag. 阅读全文
posted @ 2022-02-28 10:14
俊king
阅读(446)
评论(0)
推荐(0)
摘要:
2.23 Go之go mod包依赖管理工具使用详解 go module Go语言默认的依赖管理工具 使用module 设置GOMODULE 设置GoModule GOMODULE=off禁用go module,编译时会从GOPATH和vendor文件夹中查找包; GOMODULE=on启用 go m 阅读全文
posted @ 2022-02-28 10:14
俊king
阅读(1003)
评论(0)
推荐(0)
摘要:
2.23 Go之生成二维码 涉及到的第三方库 go-qrcode,该库的源代码托管在github上 调用函数 调用go-qrcode包下的WriteFile函数 函数: func WriteFile(content string, level RecoveryLevel, size int, fil 阅读全文
posted @ 2022-02-28 10:13
俊king
阅读(503)
评论(0)
推荐(0)
摘要:
2.23 Go之os包 Os包的作用 提供了操作系统的接口,主要是在服务器上进行系统的基本操作,如文件操作、目录操作、执行命令、信号与中断、进程、系统状态等等。 Os包常用函数 函数名函数定义作用 Hostname func Hostname() (name string, err error) 返 阅读全文
posted @ 2022-02-28 10:06
俊king
阅读(213)
评论(0)
推荐(0)
摘要:
2.19 Go之time包:时间和日期 time包简介 时间值 时区 这一点在Go语言的time包源码当中可以看出 正确表示时间 国内使用的北京时间与UTC时间的关系: UTC + 8个小时 = 北京时间 Go的time包下的时区变量: time.UTC:UTC时间 time.Local:本地时间 阅读全文
posted @ 2022-02-28 10:05
俊king
阅读(383)
评论(0)
推荐(0)
摘要:
2.17 Go之正则表达式:regexp包 正则表达式的作用 根据需求构造出想要得到的字符组合 正则表达式的语法规则 组成: 由普通字符(例如字符a到z)以及特殊字符(称为"元字符")构成的文字序列,可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。 字符 语法说明表达式 阅读全文
posted @ 2022-02-28 10:04
俊king
阅读(465)
评论(0)
推荐(0)
摘要:
2.15 Go之工厂模式自动注册 什么是自动注册 示例调用: import "database/sql"import _ "github.com/go-sql-driver/mysql" 解析: 明明没有使用github.com/go-sql-driver/mysql包却还是需要导入的原因: 这个包 阅读全文
posted @ 2022-02-28 10:04
俊king
阅读(422)
评论(0)
推荐(0)
摘要:
2.15 Go之单例设计模式 什么是单例设计模式 结构中只包含一个被称为单例的特殊类,能够保证系统运行中一个类只创建一个实例 实现方式: 懒汉式 饿汉式 双重检查 sync.Once 懒汉式 特点: 非线程安全,多线程下可能会创建多次对象: package Practice_Single/*设置结 阅读全文
posted @ 2022-02-28 10:03
俊king
阅读(27)
评论(0)
推荐(0)
摘要:
2.16 Go之sync包与锁:限制线程对变量的访问 sync包 sync包提供了的锁: Mutex:互斥锁 RWMutex:读写锁 为什么需要锁 sync包中的两个核心方法: Lock:加锁 Unlock:解锁 在并发的情况下,多个线程或协程同时其修改一个变量,使用锁能保证在某一时间内,只有一个协 阅读全文
posted @ 2022-02-28 10:03
俊king
阅读(108)
评论(0)
推荐(0)
摘要:
2.15 Go之package 包的特征 一个目录下的同级文件归属一个包。 包名可以与其目录不同名。 包名为main的包为应用程序的入口包,编译源码没有main包时,将无法编译输出可执行的文件。 修改了一个源文件,我们必须重新编译该源文件对应的包和所有依赖该包的其他包。 Go编译速度快速的原因 第一 阅读全文
posted @ 2022-02-28 10:02
俊king
阅读(55)
评论(0)
推荐(0)
摘要:
2.15 Go之自定义包 自定义包并且使用包 自定义一个model包下的demo.go文件: package modelimport "fmt"/* 在该包下定义一个打印的函数 */func PrintStr() { fmt.Println("WelCome To Lucifer's Home! 阅读全文
posted @ 2022-02-28 10:02
俊king
阅读(115)
评论(0)
推荐(0)
摘要:
2.14 Go之内置包简介 Go语言的包 查看包: GOROOT/src/pkg Go常用包列举 fmt >格式化的标准输入输出 io >提供了原始的 I/O 操作界面 bufio >对 io 包的封装,提供了数据缓冲功能 sort >对切片和用户定义的集合进行排序的功能 strconv >将字符串 阅读全文
posted @ 2022-02-28 10:01
俊king
阅读(58)
评论(0)
推荐(0)
摘要:
2.14 Go之GoPath详解 什么是GoPath Go的一个环境变量,使用绝对路径提供项目的工作目录 命令行查看GoPath信息 指令: go env 输出结果说明: GOARCH表示目标处理器架构。 GOBIN表示编译器和链接器的安装位置。 GOOS表示目标操作系统。 GOPATH表示当前工作 阅读全文
posted @ 2022-02-28 09:57
俊king
阅读(217)
评论(0)
推荐(0)
摘要:
2.14 Go之封装简介以及实现细节 Go语言的封装概念 Go语言的封装和java类似,就是把对结构体字段操作的方法和结构体封装在一个.go文件中。数据被保护在内部,程序的其它包只能通过被授权的方法,才能对字段进行操作。 封装的好处: 隐藏实现细节; 可以对数据进行验证,保证数据安全合理。 代码示例 阅读全文
posted @ 2022-02-28 09:56
俊king
阅读(277)
评论(0)
推荐(0)
摘要:
2.14 Go之包的概念 包的基本概念 Go使用包组织源代码。 包(package)是多个Go源码的集合,是一种高级的代码复用方案。 任何源代码文件必须属于某个包,同时源码文件的第一行有效代码必须是package pacakgeName语句,通过该语句声明自己所在的包。 包名的特点: 目录树的组织形 阅读全文
posted @ 2022-02-28 09:55
俊king
阅读(105)
评论(0)
推荐(0)
摘要:
2.12 Go二叉树数据结构的应用 树的定义和基本术语 树的定义: 树是n(n>=0)个节点的有限集合T 一颗非空树需要满足的两个条件: 有且仅有一个根节点(root) 当n>1时,其余节点可分为m(m>=0)个互不相交的有限集合T1,T2,……,Tm,其中每一个集合本身又都是一棵树,并且称为根的子 阅读全文
posted @ 2022-02-28 09:54
俊king
阅读(71)
评论(0)
推荐(0)

浙公网安备 33010602011771号