摘要:
3.23 Go之反射 什么是反射 反射是指在程序编译期将变量的信息整合到可执行文件中,给程序提供接口访问反射信息.可以在程序运行期获取类型的反射信息,并且有能力修改它们 反射流行时间: 在java出现之后流行起来 反射的缺点 反射功能强大但是代码可读性不理想 需要反射的原因 程序在编译时,变量被转换 阅读全文
posted @ 2022-03-23 17:19
俊king
阅读(114)
评论(0)
推荐(0)
摘要:
3.22 Go之CSP:通信顺序进程 Go的并发模型 多线程共享内存 >java或c++等语言中的多线程开发 CSP(Communicating sequential processes) >两个独立并发实体通过channel进行通信的并发模型 值得注意的是: Go并没有完全实现CSP仅仅只是实现了 阅读全文
posted @ 2022-03-23 10:27
俊king
阅读(161)
评论(0)
推荐(0)
摘要:
3.22 Go之聊天服务器 项目结构 服务端 一个主goroutine-->监听端口,每一个链接创建一个新的handleConn的goroutine 一个广播(broadcaster)goroutine >使用select对消息进行响应 一个(handleConn)goroutine >用户连接处理 阅读全文
posted @ 2022-03-23 10:27
俊king
阅读(78)
评论(0)
推荐(0)
摘要:
3.21 Go之锁(一) 锁的几种描述 死锁 活锁 饥饿锁 锁的种类 互斥锁 读写互斥锁 读写锁 读锁 写锁 死锁 死锁的概念 两个或者两个以上的进程(或线程),因争夺资源而互相等待. 特点: 这些进程(或线程)都无法推进下去. 此时系统处于死锁的状态或者系统产生了死锁. 这些进程(或线程)称为死锁 阅读全文
posted @ 2022-03-23 10:24
俊king
阅读(86)
评论(0)
推荐(0)
摘要:
3.21 Go之锁(二) 锁的种类 互斥锁(sync.Mutex) 读写互斥锁(sync.RWMutex) Go提供的函数 go的sync包下提供了两种类型: sync.Mutex sync.RWMutex Mutex Mutex的概念 最简单的锁定 特点: 当一个goroutine获得Mutex后 阅读全文
posted @ 2022-03-23 10:24
俊king
阅读(39)
评论(0)
推荐(0)
摘要:
3.22 Go之等待组 等待组的作用 进行多个任务的同步,保证在并发环境中完成指定数量的任务 等待组的结构特点以及可使用的函数 等待组属于sync.WaitGroup类型.每个等待组内部维护一个技术,该计数初始默认值为零 等待组的函数: 方法名功能 (wg * WaitGroup) Add(delt 阅读全文
posted @ 2022-03-23 10:24
俊king
阅读(69)
评论(0)
推荐(0)
摘要:
3.21 Go之多核并行化 并发和并行的概念 首先了解什么是并发什么是并行 Go当中实现多核多线程并发 注意: 注意区分什么是goroutine在并发和并行章节已经提到了. 获取当前操作系统CPU的核心数: 示例代码: package mainimport ( "fmt" "runtime")/ 阅读全文
posted @ 2022-03-23 10:23
俊king
阅读(255)
评论(0)
推荐(0)

浙公网安备 33010602011771号