当前位置:网站首页>实习日报-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语言技术文档并逐步学习支付中台业务流程。
边栏推荐
猜你喜欢
随机推荐
Typora报错:This beta version of Typora is expired
win10+Qt5.15.2 realizes low-power bluetooth control
Timezone setting in MySQL
Stock Strategy 02 | Technology Timing + Industry Factors + Market Value Rotation
商业智能BI业务分析思维:供应链分析 - 什么是牛鞭效应(一)
Could not write header for output file #0 (incorrect codec parameters ?): ……
股票预测 lstm(时间序列的预测步骤)
tkinter-TinUI-xml实战(6)问卷
会议OA项目(六)--- (待开会议、历史会议、所有会议)
VIM实用指南(3)复制,粘贴 ,删除,撤销,重做指令速记
what is tail tooth feast
Stored procedures in MySQL (detailed)
只知道SQL数据库?又一国产数据库语言诞生了
【论文笔记】MiniSeg: An Extremely Minimum Network for Efficient COVID-19 Segmentation
如何使用 Mashup 技术在 SAP Cloud for Customer 页面嵌入自定义 UI
[Binary Tree] Path Sum II
信息录入率百分百上海强化施工现场建筑工人实名制管理
Pytorch - Distributed Model Training
Inflation continues, Kenya's food security a concern
1161. 最大层内元素和