当前位置:网站首页>实习日报-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语言技术文档并逐步学习支付中台业务流程。
边栏推荐
猜你喜欢
随机推荐
兆骑科创平台招才引智,海内外高层次人才引进平台
会议OA项目(六)--- (待开会议、历史会议、所有会议)
stm32l476芯片介绍(nvidia驱动无法找到兼容的图形硬件)
LeetCode50天刷题计划(Day 8—— 盛最多水的容器(23.00-1.20)
大佬们,datax同步数据,同步过程中要新增一个uuid,请问column 怎么写pgsql,uu
what is tail tooth feast
未来小间距竞争的着力点在哪里
MySQL中的行锁
Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!
flink-sql 可以单独配置某个算子节点的并行度吗?
LeetCode50天刷题计划(Day 6—— 整数反转 14.20-15.20)
只知道SQL数据库?又一国产数据库语言诞生了
SQL查询语句之查询数据
游戏元宇宙发展趋势展望分析
2.8K 120Hz touch dual-screen blessing Lingyao X dual-screen Pro 2022 makes the office without fear of imagination
The role of the final keyword final and basic types, reference types
leetcode:80. 删除有序数组中的重复项 II
Digicert EV证书签名后出现“证书对于请求用法无效”的解决方案
布隆过滤器bloom
Kernel pwn 入门 (6)








