04 2022 档案
摘要:1. fmt.Printf 通用占位符: %v 以默认值打印 %+v 以默认值打印,输出结构体会输出字段名 %#v 结果为:%T+%+v %T 输出值类型 %% 打印%本身 打印字符串 %s 输出字符串表示 %q 双引号围绕字符串 %x 输出十六进制,小写字母,每字节两个字符 %X 输出十六进制,大
阅读全文
摘要:协程的使用: func()执行一个函数 go func() 开启一个协程执行函数 1. 信道chan var pipline chan int pipline:=make(chan int) //发送数据 pipline<-1 //接收数据 data:=<-pipline //关闭信道 close(
阅读全文
摘要:1. byte与rune 字符串 byte 占用1个字节,8个bit,范围为0->255(uint8) rune 占用4个字节,32个bit,范围为0-2^32(int32)(字符集大,中文必须使用这个) func main() { var a byte = 'A' var b rune = 'B'
阅读全文
摘要:线程通信(IPC) 管道(通过共享存储空间实现,一方写入,一方读取)(在同一操作系统通信) 无名管道 使用管道的两个线程必须存在某种联系(例如父子线程) 记名管道 不同进程间的线程通信 套接字(跨应用,跨网络通信) 使用套接字通信双方均创建一个套接字,一方为服务端,一方为客户端,服务器先创建套接字并
阅读全文
摘要:Linux内存管理 物理内存 三个级别 Page 大小为4k,内存的基本单位 Zone 管理Page的队列 ZONE_DMA 内核专用,存放DMA(直接存储器访问)读取IO设备的数据 ZONE_NORMAL 内核专用,存放内核的相关数据 ZONE_HIGHMEM 高端内存 用户进程存放数据 Node
阅读全文
摘要:可达性分析算法来判断对象是否是不再使用的对象,本质都是判断一个对象是否还被引用。那么对于这种情况下,由于代码的实现不同就会出现很多种内存泄漏问题 主要原因:内核以为此对象还在引用中,无法回收,造成内存泄漏 只有对象不会再被程序用到了,但是GC又不能回收它们的情况,才叫内存泄漏。 内存泄漏和内存溢出的
阅读全文