迎风的舵手

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

排序:
默认
按更新时间
按访问量

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

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

2018-05-02 23:07:42

阅读数:74

评论数:0

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

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

2018-04-29 00:50:20

阅读数:172

评论数: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

阅读数:51

评论数: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

阅读数:68

评论数:0

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

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

2018-04-25 22:57:32

阅读数:74

评论数:0

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

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

2018-04-22 17:00:30

阅读数:64

评论数: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

阅读数:117

评论数:0

c++创建一个linux deamon进程

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

2018-02-09 17:11:37

阅读数:122

评论数:0

golang使用aes库实现加解密

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

2018-01-31 15:39:42

阅读数:675

评论数:0

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

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

2018-01-31 11:31:54

阅读数:91

评论数:0

C++的构造和析构顺序

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

2018-01-30 10:07:03

阅读数:93

评论数:0

golang的defer,recover,panic用法

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

2018-01-29 21:15:43

阅读数:106

评论数:0

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

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

2018-01-27 11:10:18

阅读数:67

评论数:0

golang文件读取-按行读取

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

2018-01-25 16:49:15

阅读数:1296

评论数:0

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

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

2018-01-25 16:43:09

阅读数:327

评论数:0

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

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

2018-01-25 15:50:14

阅读数:202

评论数:0

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

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

2018-01-25 09:11:33

阅读数:917

评论数:0

golang-goroutine的调度原理

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

2018-01-18 09:15:02

阅读数:103

评论数:0

golang实现一个正经的接口

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

2018-01-17 21:51:26

阅读数:171

评论数:0

2017 over. 2018 on the road

匆匆一年又过去..

2018-01-17 09:14:16

阅读数:86

评论数:0

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

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

2018-01-16 09:18:09

阅读数:151

评论数:0

BitCoin对等节点发现协议

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

2018-01-16 07:45:04

阅读数:549

评论数:0

BT原理分析

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

2018-01-15 21:54:29

阅读数:399

评论数:0

比特币入门

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

2018-01-08 09:07:41

阅读数:154

评论数:0

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

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

2018-01-08 08:53:00

阅读数:3697

评论数:2

区块链入门

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

2018-01-08 08:47:43

阅读数:4264

评论数:0

golang使用gin,gjson使现Http接口和Json解析

InsertCustomer接口 用于记录和执行对数据库的客户表customer的Insert操作, 记录包括操作的用户,时间和具体的customer信息. 接口定义: InsertCustomer(customer, timestamp, params, token) 请求方式: 接...

2018-01-06 13:27:44

阅读数:1882

评论数:0

分布式一致性算法-Raft

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

2018-01-04 01:26:31

阅读数:140

评论数:0

golang实现Http Server

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

2018-01-04 00:35:48

阅读数:583

评论数:0

golang flag示例

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

2018-01-04 00:21:14

阅读数:140

评论数:0

golang toml解析

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

2018-01-04 00:18:45

阅读数:690

评论数:1

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

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

2017-12-11 20:48:58

阅读数:3450

评论数:0

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

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

2017-12-11 15:11:07

阅读数:153

评论数:0

go连接mysql

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

2017-12-08 16:08:08

阅读数:192

评论数:0

go遍历文件夹和文件

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

2017-12-07 18:28:54

阅读数:816

评论数:0

Go使现快速排序

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

2017-12-07 14:35:30

阅读数:95

评论数:0

Go实现二分法查找

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

2017-12-06 21:55:58

阅读数:135

评论数:0

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

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

2017-12-06 18:26:46

阅读数:648

评论数:0

mysql的安装

mysql的安装 数据库版本:mysql-5.6.32 1 配置安装数据库所需的磁盘2 创建mysql的安装目录及数据库存放目录mkdir -p /vdncloud/mysql mkdir -p /vdncloud/mysql/data3 创建用户组和用户groupadd mysql us...

2017-12-06 11:32:41

阅读数:70

评论数:0

go连接redis

go连接redispackage mainimport ( "fmt" "github.com/garyburd/redigo/redis" )func main() { // 连接redis数据库,指定数据库的IP和端口 c...

2017-12-06 11:23:07

阅读数:232

评论数:0

使用go读取gzip格式的压缩包

使用go读取gzip格式的压缩包package main// 引入所需包 import ( "os" "compress/gzip" "io/ioutil" "fmt" )// gzip...

2017-12-06 11:15:28

阅读数:422

评论数:0

什么是TIME_WAIT

TIME_WAIT是怎样产生的? 因为TCP连接是双向的,所以在关闭连接的时候,两个方向各自都需要关闭。先发FIN包的一方执行的是主动关闭; 后发FIN包的一方执行的是被动关闭。主动关闭的一方会进入TIME_WAIT状态,并且在此状态停留两倍的MSL时长。 什么是MSL? MSL指的...

2016-09-27 14:52:44

阅读数:563

评论数:0

mariadb数据库安装配置

编译 进入unix目录下, make 添加头文件 #include 否则会报错: ./src/main.cpp:92:31: error: ‘setrlimit’ was not declared in this scope if(setrlimit(RLIMIT_NOFIL...

2016-09-26 18:35:33

阅读数:462

评论数:0

supervisor安装配置

配置编译环境 #安装编译所需要的库 yum install -y libuuid-devel 安装进程管理工具[supervisor] yum install -y supervisor #修改配置文件 [program:test_wget] command=python /opt/vd...

2016-09-26 18:33:13

阅读数:256

评论数:0

socket实现http发送接收-<草稿>

使用socket实现http的接收和发送 建立socket连接 向服务端发送字符串 接收服务端返回信息 解析JSON 1.建立socket连接 创建socket对象socket(AF_INET, SOCK_STREAM, 0);参数说明: AF_INET: 使用IPV4进行通信,还有AF_INE...

2016-09-26 18:21:03

阅读数:399

评论数:0

使用poll实现的io多路复用服务端和客户端

使用poll实现的io多路复用服务端和客户端。 客户端通过子进程创建多个客户端连接。 客户端每隔1秒向服务端发送一个时间戳, 服务端接收到时间戳以后,保存在本地的文件中, 一个客户端对应一个存储文件, 并将接收到的时间戳返回给客户端。

2016-08-21 20:47:00

阅读数:950

评论数:0

使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)

使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)Mesos 简介Apache Mesos 是一个分布式系统的管理软件,对集群的资源进行分配和管理。 据说是云计算的未来,利用Mesos可轻易实现一个PaaS云平台。Mesos 架构图 M...

2016-06-29 14:15:50

阅读数:1874

评论数:0

使用nginx-rtmp搭建视频直播服务器

auth:robertkun@163.com date:2016-06-23 参考文档: http://blog.csdn.net/redstarofsleep/article/details/45092127 http://blog.csdn.net/cjsa...

2016-06-29 14:04:20

阅读数:1057

评论数:4

100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)

转自:http://blog.csdn.net/leixiaohua1020/article/details/8652605机器环境: vs2010 SDL-1.2.15 ffmpeg-20160628-c0cb53c-win32-dev 代码:(vs2010调试通过)/** * 最简单的基于F...

2016-06-29 13:59:38

阅读数:822

评论数:0

微信、网站、APP相关分享

微信、网站、APP相关分享NO.1:微信公众号或订阅号的申请方法微信公众号与订阅号的区别 http://kf.qq.com/faq/120911VrYVrA130805byM32u.html公众号申请地址: https://mp.weixin.qq.com/cgi-bin/loginp...

2016-04-19 14:14:44

阅读数:787

评论数:0

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