当前位置:网站首页>实习日报-2022-7-29
实习日报-2022-7-29
2022-08-01 15:14:00 【阿联爱学习】
今日完成
- 安装项目开发的软件-GoLang
- 学习Go语言并发
- 协程:共享堆空间,独立的栈空间,调度由用户自己控制。使用方式:go+func(函数或者匿名函数),go + { 代码块}
- 协程之间的通信
- Channel是进程内协程之间通信的方式
- 进程之间的通信可以采用HTTP协议或者RPC完成
- Channel:基于消息机制的消息通信方式,而非给予内存的通信方式
- Channel分为带缓冲的和不带缓冲的channel,不带缓冲的channel要求发送和接收的channel同时准备好,而带缓冲的channel则可以缓存数据。
- Channel的接受方式:阻塞式接受,非阻塞式接受,接受不处理,循环接收。
- 锁
- 可以通过go build – race 来检测数据竞争检测。
- sync.WaitGroup类似于循环栅栏,先用add申明由多少资源,在用done去表示资源被消费掉,最后用wait()方法表示等待所有协程到来。
- sync.Mutex:悲观锁
- sync.RWMutex:乐观锁
- 原子atomic
- Atomic.AddInt32()安全相加
- Atomic.LoadInt32()安全读取
- 协程之间的调度
- GMP调度,G代表goroutine,M代表内核线程,P表示处理器对应为内核,P上面由本地队列,还有一个全局队列。M先执行完本地队列的任务,在执行其他队列的任务,最后执行全局队列的任务。
- Go语言版本的快排,熟悉Go的语法
package main import "fmt" func main() { nums := []int{1,3,5,7,9,0,2,4,8,10} println(len(nums)) Qsort(nums,0,len(nums)-1) for i := range nums{ fmt.Println(i) } } func Qsort(nums []int,left int,right int){ if(left >= right){ return } mid := partition(nums,left,right) Qsort(nums,left,mid-1) Qsort(nums,mid+1,right) } // 切片进行传递 func partition(nums []int,left int,right int)(int) { flag := left index := left + 1 for i := index ; i <= right ;i++{ if(nums[i] < nums[flag]){ swap(nums,index,i) index++; } } swap(nums,index-1,left) return index -1 } func swap(nums []int,i int,j int) { tep := nums[i] nums[i] = nums[j] nums[j] = tep }
- 协程之间的调度
- 遇到的问题:用两个协程打印奇偶1-100的数字,遇到了主协程比两个从协程先执行完,导致无法进行打印,通过询问吴金龙导师才解决问题,只需要让主协程等待从协程一会就行。
- 周会:从下午四点到六点,听的很困难,学习空间很大!
- 明日计划
- 继续学习Go语言技术文档并逐步学习支付中台业务流程。
边栏推荐
- 百图生科卓越开发者计划全面升级暨《计算免疫问题白皮书》发布
- SyntaxHighlighter带来的字符转义问题
- Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!
- RepOptimizer学习笔记
- 有限合伙人与普通合伙人的区别
- Eslint syntax error is solved
- ffmpeg视频剪辑中报错Could not write header for output file #0 (incorrect codec parameters ?): ……
- SSM入门
- 2.8K 120Hz触控双屏加持 灵耀X 双屏Pro 2022让办公无惧想象
- 全网最全音视频媒体流
猜你喜欢
随机推荐
gconf/dconf实战编程(3)利用dconf库读写配置实战以及诸多配套工具演示
Grid布局 容器属性(一) `grid-template`系列属性
2022年5月20日最全摸鱼游戏导航
Flink - SQL can separate a certain parallelism of operator node configuration?
ffmpeg视频剪辑中报错Could not write header for output file #0 (incorrect codec parameters ?): ……
0-1背包问题的一维数组优化解析
你真的会测试用户登录吗?
The default database main key, foreign key, and the only key index
“查找附近的商铺”|Geohash+MySQL实现地理位置筛选
VIM实用指南(0)基本概念与初次体验
c语言rand函数生成随机数,详解C语言生成随机数rand函数的用法[通俗易懂]
lombok builder重写
"Find nearby shops" | Geohash+MySQL realizes geographic location filtering
DHCP配置命令(DHCP配置命令)
Bloom filter bloom
1161. 最大层内元素和
Next-ViT学习笔记
到底什么才是真正的商业智能(BI)
HDU 2602: Bone Collector ← 0-1背包问题
WPF如何自定义隐藏下拉框选项









