自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

迎风的舵手

勤学似春起之苗,不见其增,日有所长;辍学如磨刀之石,不见其损,日有所亏.

原创 go 协程返回值处理

go 协程返回值处理 package main import "fmt" import "sync" var ch = make(chan int) func do(lock *sync.Mutex, ct *int) { lock.Lock(...

2019-12-23 18:03:17 770 0

原创 求两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为...

2019-01-16 17:24:42 149 0

原创 c++实现快速排序算法

#include <unistd.h> #include <stdio.h> using namespace std; void quickSort(int arr[], int left, int right) { if (left ...

2019-01-16 15:09:32 1998 0

转载 golang源码剖析-内存管理-2

接上篇:[ https://blog.csdn.net/robertkun/article/details/80140594 ] 在真正进入内存分配过程之前,还需要了解一下整个内存分配器是如何创建的以及初始化成什么样子。完成内存分配器创建初始化的函数是runtime·mallocinit,看一下...

2018-05-02 23:07:42 336 0

转载 golang源码剖析-内存管理-1

转自[http://skoo.me/go/2013/10/13/go-memory-manage-system-alloc ] 这个拿来主义虽然不太好, 但总比不拿强.. 吃水不忘挖井人,感谢原文作者分享. 内存布局结构图 我把整个核心代码的逻辑给抽象绘制出了这个内存布局图,它基本展示...

2018-04-29 00:50:20 1622 0

转载 golang源码剖析-网络库的基础实现-3

转自: http://skoo.me/go/2014/04/21/go-net-core 接上一篇: https://blog.csdn.net/robertkun/article/details/80101591 runtime中的epoll事件驱动抽象层其实在进入net库后,又被封装了一次...

2018-04-27 23:04:45 457 0

转载 golang源码剖析-网络库的基础实现-2

转自: http://skoo.me/go/2014/04/21/go-net-core 接上一篇: https://blog.csdn.net/robertkun/article/details/80087304 想要弄明白网络库的底层实现,貌似只要弄清楚echo服务器中的Listen、Ac...

2018-04-26 23:17:27 804 0

转载 golang源码剖析-网络库的基础实现-1

转自: http://skoo.me/go/2014/04/21/go-net-core 偶遇大神写的文章, 分析的很透彻, 转过来学习了. Go语言的出现,让我见到了一门语言把网络编程这件事情给做“正确”了,当然,除了Go语言以外,还有很多语言也把这件事情做”正确”了。我一直坚持着这样的理...

2018-04-25 22:57:32 632 0

转载 golang源码剖析-Goroutine与调度器-2

转自: 原文地址 此文文风优雅, 通俗易懂, 让人理解起来比较容易, 很是不错. goroutine与调度器 我们都知道Go语言是原生支持语言级并发的,这个并发的最小逻辑单元就是goroutine。goroutine就是Go语言提供的一种用户态线程,当然这种用户态线程是跑在内核...

2018-04-22 17:00:30 1072 0

转载 golang源码剖析-Goroutine源码分析-1

转自:[https://studygolang.com/articles/7734] 本文针对的go版本是截止2016年6月29日最新的Go1.7。 一、Golang简介 1.1概述 Golang语言是Google公司开发的新一代编程语言,简称Go语言,Go 是有表达力...

2018-04-22 07:23:56 1934 0

原创 c++创建一个linux deamon进程

正规的方法, 创建一个deamon进程,需要很多步骤 1. fork() 2. 子进程setsid() 3. 主进程wait() 4. chdir() 5. umask() 非正规方法创建一个deamon进程的步骤: 1. 创建一个子进程fork(), 创建子进程的目的是为了后面...

2018-02-09 17:11:37 459 0

原创 golang使用aes库实现加解密

golang实现加密解密的库很多, 这里使用的是aes库+base64库来实现. 使用时,需要指定一个私钥,来进行加解密, 这里指定是: var aeskey = []byte(“321423u9y8d2fwfl”) 上代码: package main import ( &q...

2018-01-31 15:39:42 9416 2

原创 关于c++析构函数要不要加virtual的问题

1.析构函数加virtual #include using namespace std; class CA { public: CA() { cout "CA()" << endl; } virtual ~CA() { cout "...

2018-01-31 11:31:54 703 0

原创 C++的构造和析构顺序

子类的构造和析构过程, 上代码: #include using namespace std; class CA { public: CA() { cout "CA()" << endl; } ~CA() { cout "~CA()&...

2018-01-30 10:07:03 2602 0

原创 golang的defer,recover,panic用法

示例如下: package main import ( "fmt" ) func defer_call() { defer func() { fmt.Println("before") }() de...

2018-01-29 21:15:43 1485 0

原创 关于c++中继承和虚函数的一些思考

做为一个这么多年的老程序员,有时候是应该反思一下自已,好多基础的东西都丢掉了. 今天有时间再复习一下,温故而知新嘛. 致每个在路上的人,努力不放弃. 上代码: #include class CA { public: virtual void vfunc1() { ...

2018-01-27 11:10:18 126 0

原创 golang文件读取-按行读取

golang文件读取-按行读取 a.txt文件内容: ABCDEFGHI HELLO GOLANG package main import ( "fmt" "os" "io" &...

2018-01-25 16:49:15 11736 0

原创 golang文件读取-按指定BUFF大小读取

golang文件读取-按指定BUFF大小读取 a.txt文件内容: ABCDEFGHI HELLO GOLANG package main import ( "fmt" "os" "io"...

2018-01-25 16:43:09 1536 0

原创 golang使用net库实现一个简单的服务端和客户端通信

golang使用net库实现一个简单的服务端和客户端通信 服务端代码: 服务端启动监听,默认127.0.0.1, 设置端口9090 package main import ( "fmt" "runtime" "n...

2018-01-25 15:50:14 796 0

转载 golang解决数据库中null值的问题

转自: http://blog.csdn.net/qq_15437667/article/details/78780945 要点 从数据库读取可能为null值得值时,可以选择使用sql.NULL***来读取;或者使用IFNULL、COALESCE等命令让数据库查询值返回不为”“或者NUL...

2018-01-25 09:11:33 4810 0

转载 golang-goroutine的调度原理

首先简单的介绍一下进程,线程和协程三者的关系 用户线程和内核线程之间的调用关系 goroutine的运行机制 goroutine的三个重要结构 goroutine的调度原理 转自:https://www.zhihu.com/question/20862617

2018-01-18 09:15:02 235 0

原创 golang实现一个正经的接口

使用gin和gjson库打造的一个轻量级的http接口. package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql&qu...

2018-01-17 21:51:26 321 0

原创 2017 over. 2018 on the road

匆匆一年又过去..

2018-01-17 09:14:16 171 0

转载 比特币协议是怎样工作的(上)

转自:http://blog.csdn.net/zhangzq86/article/details/51943853 区块链技术交流群: 329299693

2018-01-16 09:18:09 274 0

翻译 BitCoin对等节点发现协议

> 第6章 比特币网络 新节点是怎样加入网络中的? 当建立一个或多个连接后,新节点将包含自身ip和addr的信息,发送给相邻节点, 相邻节点接收到信息后,再将此条addr信息,转播给它的相邻节点.如次依次转播下去. 区块链技术交流群: 329299693

2018-01-16 07:45:04 1047 0

转载 BT原理分析

BitTorrent协议。 BT全名为BitTorrent,是一个p2p软件,你在下载download的同时,也在为其他用户提供上传upload,因为大家是“互相帮助”,所以不会随着用户数的增加而降低下载速度。 下面是一般用ftp,http等分享流程: 下面是用BitTorrent分享的...

2018-01-15 21:54:29 1480 0

转载 比特币入门

比特币(bitcoin)诞生于2008年的一篇论文。 一个署名为中本聪的人,提出了革命性的构想:让我们创造一种不受政府或其他任何人控制的货币!这个想法堪称疯狂:一串数字,背后没有任何资产支持,也没有任何人负责,你把它当作钱付给对方,怎么会有人愿意接受? 但是,狂想居然变成了现实...

2018-01-08 09:07:41 245 0

转载 区块链从入门到放弃(区块链入门汇总整理)

入门介绍与原理: 一、比特币 1.比特币白皮书 这是一切的开始 2.精通比特币 讲比特币很详细的一本书,看完基本对比特币的认识就清楚了。 3.TheProof-of-Work Concept PoW机制理论介绍,英文 4.比特币的原理及运作机...

2018-01-08 08:53:00 7203 3

转载 区块链入门

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。 可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。 下面,我就来尝试,写一篇最好懂的区块链教程。毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚。我希望读完本...

2018-01-08 08:47:43 4449 0

原创 分布式一致性算法-Raft

我们知道Raft来源与Paxos,Paxos最早是由莱斯利·兰伯特于1990提出。Paxos的大规模应用是在Google的广告系统中。Raft可以看做是简化版本的Paxos。Raft动画演示:(真心推荐) http://thesecretlivesofdata.com/raft/Raft的三种状...

2018-01-04 01:26:31 357 0

原创 golang实现Http Server

实现Http Server 主要使用golang 的 gin包, 接口使用Post发送, 数据格式采用Json格式, 注意, 定义Json格式时, 变量的首字母,必须大写, 要不然会识别失败.Json格式的解析和打包使用golang的默认json包 打包: json.Marshal() 解包...

2018-01-04 00:35:48 3965 0

原创 golang flag示例

golang flag示例golang flag 包是用来解析命令行参数的.package mainimport ( "flag" "fmt" )func test_flag() { data_path := flag.String(...

2018-01-04 00:21:14 539 0

原创 golang toml解析

TOML 的全称是 Tom’s Obvious, Minimal Language,因为它的作者是 GitHub 联合创始人 Tom Preston-Werner。 TOML 的目标是成为一个极简的配置文件格式。TOML 被设计成可以无歧义地被映射为哈希表,从而被多种语言解析。 github:...

2018-01-04 00:18:45 7168 2

原创 go判断文件夹是否存在,并创建

go判断文件夹是否存在,并创建package mainimport ( "fmt" "os" )// 判断文件夹是否存在 func PathExists(path string) (bool, error) { _, err := o...

2017-12-11 20:48:58 25246 0

原创 go连接mysql,redis并完成日志字符处理实例

go连接mysql,redis并完成日志字符处理实例package main// 引入所需包 import ( "compress/gzip" "fmt" "io/ioutil" "os"...

2017-12-11 15:11:07 460 0

原创 go连接mysql

go连接mysqlpackage mainimport ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" )func main() { db...

2017-12-08 16:08:08 1485 0

原创 go遍历文件夹和文件

go读取文件和目录package mainimport ( "fmt" "io/ioutil" "os" "strings" )//获取指定目录下的所有文件和目录 func GetFil...

2017-12-07 18:28:54 11996 1

原创 Go使现快速排序

go使现快速排序 package main /* Go实现快速排序算法 思路: 在数组中取出一个元素作为基准值,把其它元素分为两组: “大的”是那些大于基准值的元素,“小的”是那些小于基准值的元素, 递归对这两组做排序。 快排快速的原因: 一旦知道了某个元素比基准值小,它就不需要与那些大的元...

2017-12-07 14:35:30 161 0

原创 Go实现二分法查找

Go实现二分法查找 package main /* Go实现二分法查找 二分法查找基实就是折半查找, 提前条件是数组为有序数组 思路: 1. 确定中间位置k 2. 将要查找的值T与array[k]比较,若相等,则查找成功。 若array[k] 1; 若array[k] > T, 则应该...

2017-12-06 21:55:58 554 0

原创 go操作redis的有序集合(zset)

go操作redis的有序集合(zset)package mainimport ( "fmt" "github.com/garyburd/redigo/redis" )func main() { // 连接redis数据库,指定数据库的...

2017-12-06 18:26:46 4132 0

提示
确定要删除当前文章?
取消 删除