Go
文章平均质量分 84
Coder_Joker
兴趣使然
展开
-
Talk Is Cheap,Show Me The Code-GoLang动态监听chan
通常而言,监听chan的做法为(忽略退出条件,以及close情况:)) 生产消费模型: func TestForSelect(t *testing.T) { c := make(chan int) go func() { for { select { case v := <-c: fmt.Println(v) } } }() go func() { for { time.Sleep(time.Second) c <- 1 } }()原创 2021-08-22 14:35:13 · 444 阅读 · 0 评论 -
Golang 锁源码分析
锁的实现 数据结构 type Mutex struct { state int32 sema uint32 } 一个mutex 总共只占8个字节,因此是一个充分使用位的数据结构 state意义: 最后3位充当状态的概念 第0位: mutexLocked: 表示互斥锁的状态为锁定状态,既是否被某个goroutine所持有,是否已经被加锁 第1位: mutexWoken: 是否被唤醒(既某个goroutine尝试获取锁) 第2位: mutexStarving:表示当前的互斥锁处于 饥饿模式原创 2021-08-11 09:24:37 · 307 阅读 · 0 评论 -
Talk Is Cheap,Show Me The Code-个人框架(无缝衔接Spring)
框架 以Java为主,先把Java的整了,再写Go的框架 模块划分 core/base模块(业务相关) 配置模块 日志模块 dao模块 service模块 http模块 网关模块 缓存模块 任务模块 MQ模块原创 2020-11-22 16:15:23 · 239 阅读 · 0 评论 -
Hyperledger Fabric网络环境搭建 CA,RAFT,SOLO 单机 多机
区块链就是分布式的kv数据库 peer挂在在channel上,而chaincode又是挂在peer上的 账本ledgel通过通道channel进行隔离 交易与智能合约: 智能合约是函数的声明,而交易是函数的调用过程 什么是背书结果: 既背书节点endorser节点对业务逻辑处理后的数据结果 世界状态: 指的是交易执行后的所有键的最新值 历史溯源(历史读取): 历史数据索引+ 区块读取 某键在...原创 2019-06-16 12:43:46 · 737 阅读 · 2 评论 -
Golang库浅析
Golang Goal TODO Context 浅析 库 Context Gopacket 作用: 底层流量抓包库 demo及其讲解链接原创 2019-03-08 18:16:55 · 193 阅读 · 0 评论 -
线程池的实现
Golang 线程池 线程其实就是协程,但是还是说线程吧,习惯了 线程池最经典的demo感觉莫过于Java 的ThreadLocal了,写得真的非常棒,过段时间要回顾下了,借鉴下 核心就是以下几点(暂时想到的): 有一个统一的分发类,也可以认为是池主体 池具体的对象 用Go来演示就是这样: type Worker interface { io.Closer Consume(interfa...原创 2019-01-05 22:33:21 · 193 阅读 · 0 评论 -
influxdb的使用
influxdb的使用: 2018-12-03 更: 1.安装: mac:brew install influxdb 即可 并且类似于Mysql,没有可视化界面咋行,time serial database的可视化利器是:grafana 安装: brew install grafana 2.快捷启动: export INFLUX_DB_CONFIG_PATH=/usr/local/etc/infl...原创 2018-12-04 08:03:18 · 311 阅读 · 0 评论 -
go 命令行debug
GoLang调试工具Delve 1.先获取呗: go get -u github.com/derekparker/delve/cmd/dlv 2.编写测试代码呗: func main(){ http.HandleFunc("/test",func(writer http.ResponseWriter,req *http.Request){ //TODO }) log.Fatal(htt...原创 2018-11-25 17:43:57 · 1827 阅读 · 0 评论 -
ZeroMQ的安装和使用
安装 简单的通过brew 安装: 通过brew install zeromq 直接安装 使用之前先比较下各个MQ:Kafka暂不考虑 TPS: ZeroMQ 性能最好,RabbitMQ次之,而ActiveMQ最差 持久化 ZeroMQ不支持持久化,RabbitMQ,ActiveMQ都支持 技术性 RabbitMQ功能更全,ActiveMQ次之,ZeroMQ最差RabbitMQ都...原创 2018-11-12 20:31:40 · 952 阅读 · 0 评论 -
beego学习
2018-11-08 14:37更: beego的安装:采用go get 安装go get -u github.com/astaxie/beego bee的相关命令: bee new:新建项目结构 bee run:自动编译部署 bee generate:自动生成代码 1. beego的路由: 通过beego.Router(“url”,handler)来实现的: 而这个controller的结构为...原创 2018-11-08 17:22:32 · 405 阅读 · 0 评论 -
gRPC和protobuf学习
部分总结: 2018-11-08 .proto的编写与Go类似也与Java类似,与Go类似在于 简单的通过message 类名{} 即可,与Java类似在于定义成员变量的方式:string age =1; 而不像Go一样省略分号,类型放后面 .proto中枚举变量 20018-11-08 10:09 什么是gRPC: gRPC:高性能,开源的RPC框架,基于HTTP2.0,gRPC目前仅支持p...原创 2018-11-08 14:20:34 · 794 阅读 · 0 评论 -
Java转Go
技多不压身,趁年轻多学点~~ 2018-10-30 昨天看了一天你的Go,今天记录一下吧 使用Go当然需要用到Go的命令和Go的工具,而这些离不开Go的配置 GOROOT: 就是Go的安装路径 GOPATH: 是编译后的存放的位置和import时搜索路径,同时这个也可以当做Java 中的workerspace 主要存放的三个目录: bin:存放可执行目录 pkg:存放编译好的库文件 src:存放源...原创 2018-10-30 17:20:52 · 4247 阅读 · 0 评论