go学习

profileName: majia
postId: "200"
postType: post

脑图

go介绍

指针

  • 取地址*
  • 取值&

函数里使用,参数是指针就可以修改指针的指向;函数不加就是值传递,把数据拷贝一份

跟C比

* 符号

C指针比较繁琐的在于指针运算
go语言没有指针运算。

& 符号

go语音这个符号就是取地址
C/C++ 引用(别名)同时也是取地址符

函数

函数是go语言的一等公民
不带*的名就是指向函数的指针!!!

go并发

java并发是线程
go并发是routine(协程)

1671954943710.png

为什么协程快?

  • 不快:并不比线程池快;协程也是只用那几个线程,所以go的协程调优也是线程数量调优。(netty>go)
  • 有些情况比线程快:起一万个协程要比1w个线程快。

是否完全等同于线程池的任务?

  • 线程池的task,不具备协调能力
  • golong中可以用channel做(任务)协程协调;channel就是个阻塞队列(类似java的syncqueue)
    • 在用户空间模拟了cpu切换
  • 执行完回收
  • golong中的异步(导出都是异步,但写法都是同步写法)
  • 同步的写法实现异步操作(流行起来的原因,写起来简单)

NEXT

channel
同步sync wait mutex
Map slice channel函数传递
go没有切面编程(动态代理)
生态
没有泛型(目前)

go的内存模型GC

电脑上每个应用都有自己的虚拟空间,对象放到虚拟空间page中,用到就放到内存page中;用不到直接在虚拟空间就干掉,这样就减少内存中移动对象的操作;这是go gc和javagc的差异;

1671958772766.png
67 最大最想是32k,超出的是0,精确分配;67中是向上分配,比如 8k的空间要分配大小为5的对象,浪费3k!!67种默认都是span=8k,8k里方的对象个数随之对象线上变大,个数变小。

spans别称叫*mspan

bitmap记录两个信息:
该位置有没有对象
该位置是不是已经扫描过了(垃圾回收算法)

!1671959741439.png

也会有碎片化问题,要把碎片整理出内存给新对象使用就要长时间stw(线程暂停)

go本来是为了替代c的,如果把泛型,aop等加进来反而会写起来复杂如java;不太好了。

go格式化:gofmt -w test.go

1671977696218.png

老方式GOPATH方式有vendor目录,现在用go.mod方式

beego脚手架:自动创建mvc工程目录,热部署,可以创建api工程(前后端分离),web工程(前后端不分离)

1672480010829.png

iris的框架基于fasthttp:性能高不稳定

1672479673257.png

gin 和beego基于net http:beego大而全,gin自由

1672479864692.png

总结

1672480114839.png

Gin

Gin入门

1672480397880.png

gin的http请求与返回

1672482366550.png

参数的泛绑定

1672490971951.png

绑定静态文件

1672491276530.png

多种请求类型crud

1672491623365.png

路由分组

1672492029235.png

参数获取

通过请求路径获参数

queryString获取参数
postform获参

query和form混合使用

queryArray和QurryMap
postarray和map

PYTHON
pip install --index-url http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com Image

引用

社交

每日都有工作和生活记录,赏一个
收款码

posted @   编程未来  阅读(6)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示