
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 · 487 阅读 · 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 · 356 阅读 · 0 评论 -
Talk Is Cheap,Show Me The Code-个人框架(无缝衔接Spring)
框架以Java为主,先把Java的整了,再写Go的框架模块划分core/base模块(业务相关)配置模块日志模块dao模块service模块http模块网关模块缓存模块任务模块MQ模块原创 2020-11-22 16:15:23 · 274 阅读 · 0 评论 -
Hyperledger Fabric网络环境搭建 CA,RAFT,SOLO 单机 多机
区块链就是分布式的kv数据库peer挂在在channel上,而chaincode又是挂在peer上的账本ledgel通过通道channel进行隔离交易与智能合约: 智能合约是函数的声明,而交易是函数的调用过程什么是背书结果: 既背书节点endorser节点对业务逻辑处理后的数据结果世界状态: 指的是交易执行后的所有键的最新值历史溯源(历史读取): 历史数据索引+ 区块读取某键在...原创 2019-06-16 12:43:46 · 800 阅读 · 2 评论 -
Golang库浅析
GolangGoalTODOContext 浅析库ContextGopacket作用:底层流量抓包库demo及其讲解链接原创 2019-03-08 18:16:55 · 234 阅读 · 0 评论 -
线程池的实现
Golang 线程池线程其实就是协程,但是还是说线程吧,习惯了线程池最经典的demo感觉莫过于Java 的ThreadLocal了,写得真的非常棒,过段时间要回顾下了,借鉴下核心就是以下几点(暂时想到的):有一个统一的分发类,也可以认为是池主体池具体的对象用Go来演示就是这样:type Worker interface { io.Closer Consume(interfa...原创 2019-01-05 22:33:21 · 220 阅读 · 0 评论 -
influxdb的使用
influxdb的使用:2018-12-03 更:1.安装:mac:brew install influxdb 即可并且类似于Mysql,没有可视化界面咋行,time serial database的可视化利器是:grafana安装: brew install grafana2.快捷启动:export INFLUX_DB_CONFIG_PATH=/usr/local/etc/infl...原创 2018-12-04 08:03:18 · 350 阅读 · 0 评论 -
go 命令行debug
GoLang调试工具Delve1.先获取呗:go get -u github.com/derekparker/delve/cmd/dlv2.编写测试代码呗:func main(){ http.HandleFunc("/test",func(writer http.ResponseWriter,req *http.Request){ //TODO }) log.Fatal(htt...原创 2018-11-25 17:43:57 · 2014 阅读 · 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 · 1044 阅读 · 0 评论 -
beego学习
2018-11-0814:37更:beego的安装:采用go get 安装go get -u github.com/astaxie/beegobee的相关命令:bee new:新建项目结构bee run:自动编译部署bee generate:自动生成代码1. beego的路由:通过beego.Router(“url”,handler)来实现的:而这个controller的结构为...原创 2018-11-08 17:22:32 · 440 阅读 · 0 评论 -
gRPC和protobuf学习
部分总结:2018-11-08.proto的编写与Go类似也与Java类似,与Go类似在于 简单的通过message 类名{} 即可,与Java类似在于定义成员变量的方式:string age =1; 而不像Go一样省略分号,类型放后面.proto中枚举变量20018-11-0810:09什么是gRPC: gRPC:高性能,开源的RPC框架,基于HTTP2.0,gRPC目前仅支持p...原创 2018-11-08 14:20:34 · 840 阅读 · 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 · 4294 阅读 · 0 评论