• 实习日报-2022-7-29


    今日完成

    1. 安装项目开发的软件-GoLang
    2. 学习Go语言并发
      1. 协程:共享堆空间,独立的栈空间,调度由用户自己控制。使用方式:go+func(函数或者匿名函数),go + {代码块}
      2. 协程之间的通信
        1. Channel是进程内协程之间通信的方式
        2. 进程之间的通信可以采用HTTP协议或者RPC完成
        3. Channel:基于消息机制的消息通信方式,而非给予内存的通信方式
        4. Channel分为带缓冲的和不带缓冲的channel,不带缓冲的channel要求发送和接收的channel同时准备好,而带缓冲的channel则可以缓存数据。
        5. Channel的接受方式:阻塞式接受,非阻塞式接受,接受不处理,循环接收。
        1. 可以通过go build – race 来检测数据竞争检测。
        2. sync.WaitGroup类似于循环栅栏,先用add申明由多少资源,在用done去表示资源被消费掉,最后用wait()方法表示等待所有协程到来。
        3. sync.Mutex:悲观锁
        4. sync.RWMutex:乐观锁
      3. 原子atomic
        1. Atomic.AddInt32()安全相加
        2. Atomic.LoadInt32()安全读取
      1. 协程之间的调度
        1. GMP调度,G代表goroutine,M代表内核线程,P表示处理器对应为内核,P上面由本地队列,还有一个全局队列。M先执行完本地队列的任务,在执行其他队列的任务,最后执行全局队列的任务。
      2. Go语言版本的快排,熟悉Go的语法
        1. package main
        2. import "fmt"
        3. func main() {
        4.    nums := []int{1,3,5,7,9,0,2,4,8,10}
        5.    println(len(nums))
        6.    Qsort(nums,0,len(nums)-1)
        7.    for i := range nums{
        8.       fmt.Println(i)
        9.    }
        10. }
        11. func Qsort(nums []int,left int,right int){
        12.    if(left >= right){
        13.       return
        14.    }
        15.    mid := partition(nums,left,right)
        16.    Qsort(nums,left,mid-1)
        17.    Qsort(nums,mid+1,right)
        18. }
        19. // 切片进行传递
        20. func partition(nums []int,left int,right int)(int)  {
        21.    flag := left
        22.    index := left + 1
        23.    for i := index ; i <= right ;i++{
        24.       if(nums[i] < nums[flag]){
        25.          swap(nums,index,i)
        26.          index++;
        27.       }
        28.    }
        29.    swap(nums,index-1,left)
        30.    return index -1
        31. }
        32. func  swap(nums []int,i int,j int)  {
        33.    tep := nums[i]
        34.    nums[i] = nums[j]
        35.    nums[j] = tep
        36. }

    3. 遇到的问题:用两个协程打印奇偶1-100的数字,遇到了主协程比两个从协程先执行完,导致无法进行打印,通过询问吴金龙导师才解决问题,只需要让主协程等待从协程一会就行。
    4. 周会:从下午四点到六点,听的很困难,学习空间很大!
    5. 明日计划
      1. 继续学习Go语言技术文档并逐步学习支付中台业务流程。

  • 相关阅读:
    unity - Blend Shape - 变形器 - 实践
    3.1. 数学函数
    Web端和App端测试小结
    java基础
    【Numpy总结】第五节:Numpy的广播(更易理解的版本)
    《2022年OKR实践手册》.pdf(免费下载)
    【翠花Vue之旅】vue打卡8
    猿创征文|2022 年我的开发者工具
    python 文本文件的编码格式:ASCII编码和UNICODE编码
    多肽标签X-press,DLYDDDDK
  • 原文地址:https://blog.csdn.net/qq_41593124/article/details/126086351