golang
文章平均质量分 92
x.h.z
build yourself
展开
-
GMP协程调度器初探
多线程并发进程管理1.进程和线程区别进程是操作系统进行资源调度和分配的基本单位,早期的程序都是单进程的,而到了后期随着多核CPU的发展,进程中包括了至少一个线程的存在,而多个线程共享进程的堆内存和方法区,线程是进程的一个实体,是CPU调度的分派的基本单位,是比进程更小的能独立运行的基本单位,线程基本上不拥有系统资源,只拥有(程序计数器,寄存器和栈),但是它可以和其他线程共享进程所拥有的资源2.进程通信的方式管道,信号量,共享内存,消息队列,套接字3.并发的几种方式多进程,多线程,协程,异步3原创 2022-04-17 16:52:08 · 1110 阅读 · 0 评论 -
go操作excelize报表框架
Excelize系统设计养成习惯,????再看,源码在文章后面写在前面,????感谢go社区的excelize框架????,✈️github.com/360EntSecGroup-Skylar/excelize版本说明这个版本只是第一版,简单利用了excelize的api写了一套后台接口,实现了excel模版自定义,历史保存功能,数据库用的是mongos接口请求参数设计excelize的功能很多,所以前端给的请求的参数格式也比较严格,目前规定好的接口格式如下保存excel操作模版请求参原创 2020-08-15 10:13:51 · 3414 阅读 · 4 评论 -
gin文件上传
下面介绍一下简单的使用gin框架实现文件上传,代码如下package mainimport ( "github.com/gin-gonic/gin" "fmt" "net/http")//1.单文件上传//定义文件保存路径const dir = "/Users/zonst/"func main() { router := gin.Default() //单文件上...原创 2020-04-21 17:08:34 · 774 阅读 · 0 评论 -
go实现jwt验证过程
jwt验证在分布式系统中作为权限验证模块的一个中间件,地位尤其重要,特此在这用代码记录一下简单的设计流程首先看一下jwt验证的流程图实现流程见代码package mainimport ( "github.com/dgrijalva/jwt-go" "time" "github.com/gin-gonic/gin" "net/http" "strings" "errors...转载 2020-04-21 14:08:31 · 762 阅读 · 0 评论 -
gin项目登陆注册demo
最近学习了gin基础,实现了一个简单的基于gin+postgresql+redis技术的登陆注册接口,今天是周五,就总结一下在项目中学到的东西吧文章目录前言项目结构实现过程数据库连接池的设计模型的设计缓存层的设计中间件的设计服务器状态码的封装文件配置解析封装控制器的设计注册路由前言项目的需求很简单,实现一个登陆注册的接口,当用户第一次登陆时,系统会去redis中验证用户信息,如果没有则会去p...原创 2020-04-17 16:51:48 · 3759 阅读 · 1 评论 -
gin阶段学习(入门)
文章目录1.环境配置2.测试运行3.请求路由3.1 多种请求类型3.2 静态文件夹3.3 参数作为URL4.获取请求参数4.1 获取get请求4.2 泛绑定4.3 获取body内容值4.4 获取bind参数4.验证请求参数4.1 结构体验证1.环境配置假设你的go环境已经配置好了打开终端进行配置mkdir -p $GOPATH/src/github.com/zxhjames/Zonst...原创 2020-04-10 14:47:55 · 2451 阅读 · 0 评论 -
go语言设计模式
Go 语言设计模式Go 语言设计模式的实例代码创建型模式简单工厂模式(Simple Factory)工厂方法模式(Factory Method)抽象工厂模式(Abstract Factory)创建者模式(Builder)原型模式(Prototype)单例模式(Singleton)结构型模式外观模式(Facade)适配器模式(Adapter)代理模式(Proxy)组合...转载 2020-04-18 20:12:56 · 168 阅读 · 0 评论 -
go中struct,map,json类型的互相转换
????如下:package mainimport ( "encoding/json" "fmt" "github.com/mitchellh/mapstructure" "reflect")/**结构体,map,json互相转换 */ type Person struct { Name string Age int } func main(){ Js...原创 2020-04-16 14:20:00 · 279 阅读 · 0 评论 -
go基础之操作redis数据库
文章目录1.项目结构2.功能分析2.1 管理员登陆2.2 用户管理2.3 E-R设计1.项目结构ginweb开发常用的项目结构如下所示-conf (用于存储配置文件夹)-controller(控制器层)-dao(数据访问层)curd-dto(数据传输对象层)-middleware (中间件层)-public (公共层)-router(路由配置层)-template(模版层)2....原创 2020-04-14 10:47:15 · 300 阅读 · 0 评论 -
golang操作postgresql数据库
文章目录准备阶段引入github库实际demo准备阶段在这里不多赘述,库表的建立参考菜鸟教程pgsql引入github库在这里有三个比较好的库https://github.com/jmoiron/sqlxhttps://github.com/lib/pqhttps://github.com/jinzhu/gorm第三个库功能比较强大,暂时用不到,这里使用前两个库构建go get ...原创 2020-04-13 11:32:54 · 2699 阅读 · 0 评论 -
golang(程序结构)
文章目录命名声明变量赋值类型包和文件作用域命名Golang中的关键字有25个,关键字不能用于自定义名字,只能在特定语法结构中使用在习惯上要优先使用驼峰命名声明golang提供了四种类型的声明语句:var const type func变量普通变量声明法:var 变量名 类型 = 表达式 //声明单个变量 var s string = "hello" fmt.Pri...原创 2020-03-30 21:50:24 · 335 阅读 · 0 评论