- 博客(29)
- 收藏
- 关注
转载 sync.Pool 内部实现
sync.Pool 是 Golang 官方提供的缓存工具。最近看了下它的源码,简单写一下内部实现方法。 数据存储结构 数据存储结构为一个 poolLocal 类型的数组,数组名称为 local。数组下标含义为 P 的 id,即每个 P 有一个独立的数据存储空间 poolLocal,可通过...
2018-09-30 10:53:00
187
转载 cgo 命令详解
原文地址:Command cgo。 Cgo 允许创建能调用 C 代码的 Go 包。 通过 go 命令使用 cgo 为了使用 cgo,你需要在普通的 Go 代码中导入一个伪包 "C"。这样 Go 代码就可以引用一些 C 的类型 (如 C.size_t)、变量 (如 C.stdout)、或...
2018-07-12 22:16:00
7657
转载 C? Go? Cgo! (Go Blog 翻译)
原文地址:C? Go? Cgo! 引言 Cgo 允许 Go 包调用 C 代码。给定一个具有一些特点的 Go 源文件,cgo 可以输出能结合到同一个 Go 包中的 Go 和 C 文件。 我们首先给出一个例子。下面是个有两个函数的 Go 包 - Random 和 Seed。这两个函数分别包...
2018-07-09 20:51:00
254
转载 Go 并发模式:超时则继续 (Go Blog 翻译)
原文地址:Go Concurrency Patterns: Timing out, moving on 并发编程有自己的习语。超时是一个很好的例子。虽然 Go channel 不直接支持超时,但它很容易实现。假设我们想从 channel ch 中获取数据,但是最多只能等待一秒钟。那么我们应该...
2018-07-08 23:00:00
191
转载 Go 并发模式:管道和取消任务 (Go Blog 翻译)
原文:Go Concurrency Patterns: Pipelines and cancellation。 引言 Go 的并发基础数据使得码农能很容易地构建能有效利用 I/O 和多 CPU 的流式数据管道。这篇文章提供了一些使用这些管道的例子、强调了当操作失败时的处理技巧、并介绍了整...
2018-07-08 14:25:00
314
转载 JSON 和 Go (Go Blog 翻译)
原文地址:JSON and Go。 引言 JSON (JavaScript Object Notation) 是一种简单的数据交换格式。从语法上讲,它类似于JavaScript的对象和列表。它常用于web 后端程序和浏览器中运行的 JavaScript 程序的通信上。它在其他方面也有很...
2018-07-06 20:54:00
171
转载 Go maps 实践 (Go Blog 翻译)
原文:Go maps in action。 引言 哈希表是计算机科学中最有用的数据结构之一。当前许多哈希表的实现,虽然有各自不同的特性,但它们都提供快速的查找、添加、及删除操作。Go 提供了内置的哈希表实现类型,即 map 类型。 声明及初始化 一个 Go 的 map 类型看起来是...
2018-07-06 14:52:00
189
转载 Go 反射法则 (Go Blog 翻译)
翻译一下 The Laws of Reflection。 引言 反射是程序在计算中检查自己的结构,尤其是通过类型来检查结构的能力;它是一种元编程的形式。它也经常造成程序员的困惑。 在本文中,我们会尽力阐述 Go 语言中反射的机制。每个语言的反射模型都是不同的 (而且许多语言根本没有反射...
2018-07-02 11:14:00
155
转载 Go 内存模型 (Go Blog 翻译)
翻译一下 The Go Memory Model. 介绍 本文明确了不同 goroutine 间变量可见性的条件。在这里,变量可见性是指当一个 goroutine 中有对一个变量的读取操作时,能够保证观察到其他 goroutine 中对同一个变量的修改操作。 建议 当你的程序要修改...
2018-06-25 22:37:00
232
转载 性能测试应该怎么做?
https://coolshell.cn/articles/17381.html 转载于:https://my.oschina.net/dokia/blog/1590100
2017-12-14 23:02:00
94
转载 读书计划
列个读书计划,催促一下自己,多读点书。 2017 年读书总结 计算广告 40% 一入广告深似海,不说了。 Python Cookbook 100% 读完了,可惜现在不用 python 了,手生。 数学之美 ...
2017-06-24 15:01:00
91
转载 并发编程思考-线程安全性
何为线程安全性? 线程安全性的对象是可变共享变量。“可变”表明历史上对此变量的访问在当下或未来不可信,“共享”表明此变量即使未被本线程过,也会有被其他线程改变的风险。非可变变量或非共享变量都不存在线程安全性问题。在并发应用中,对线程安全性最常见的需求是:某线程对可变共享变量的访问期间,此变...
2017-02-07 12:25:00
101
转载 Hive SQL 数据倾斜总结
在海量数据下的数据查询中,数据倾斜是一个很恐怖的场景。常常看似很普通的数据查询,运行了几个小时也没有结果,其原因往往是发生了数据倾斜。如果真对数据倾斜采取相应的解决方法,那么查询效率将会大大提高。所以,分析数据倾斜是一件相当有意义的任务。本文总结不同情况下的数据倾斜,并分别给出解决方法。 ...
2017-01-05 17:19:00
152
转载 Thinking in Java
锁 Java提供内置锁, 使用synchronized语法糖。阻塞式等待,简单明了,推荐使用。但可能造成死锁 显式锁ReentrantLock, 显式获得及释放锁。提供非阻塞及限时阻塞方法(轮询锁及定时锁)。还能够对中断保持响应 Lock lock = ne...
2016-12-15 15:55:00
96
转载 消息管道kafka入门了解
1. kafka特性 kafka是一种分布式的消息服务系统,它从消息发送端获取消息,然后将消息发布给接收端。kafka在不同机器上设置备份以提供高可用性。同时通过分区(partition)设置,kafka能够并行处理消息,从而提高消息处理效率。 kafka不会对消息进行处理,而是作为消息...
2016-09-21 16:13:00
202
转载 实时流计算学习大纲
最近做了一些实时流计算的工作,但是感觉了解的太浅,于是打算列一个大纲,将相应的知识逐个梳理一遍。 1. 学习内容及进度 消息管道:kafka---------【已完成】 实时计算:storm---------【未开始】 多维分析:druid----------【已开始】 ...
2016-09-18 10:17:00
121
转载 Shell编程笔记
遍历时间 #! /bin/bash first=$1 second=$2 while [ "$first" != "$second" ] do echo $first let first=`date -d "-1 days ago ${first}" +%Y%m...
2016-09-01 10:08:00
88
转载 HiveQL学习笔记
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。其本质是将SQL转换为MapReduce程序##1. hive client命令###1.1 hive命令参数-e: 命令行sql语句-f: SQL文件-h, --hel...
2016-08-29 16:07:00
163
转载 jline 初步了解
jline是用java开发的仿shell终端模拟工具包,模拟shell终端,以命令行的方式读取输入信息。##1. 属性配置原文档地址两种配置方式:通过jline配置文件配置,或者标准的*system properties(jvm或者System.setProperty)*配置.jli...
2016-08-29 16:06:00
1155
转载 Hive 可扩展接口学习笔记
Hive提供灵活的接口,以使用户能更灵活地处理数据。可扩展接口分为三种:UDF、UDTF、和UDAFUDFUDF是最常用到的接口,用来处理字段并返回一个单一的值。接口类型:UDF提供两种接口:简单API org.apache.hadoop.hive.ql.exec.UDF...
2016-08-29 15:29:00
119
转载 Hive操作备忘录
显示表创建信息 > show create table [table_name]; 写入HDFS > insert overwrite directory 'hdfs path'> row format delimited> fields terminat...
2016-08-29 15:22:00
76
转载 Jedis Pipeline机制简单探究
jedis Pipeline简单用法如下: /*1.得到关联jedis客户端的pipeline*/Pipelinep=jedis.pipelined();/*2.pipeline通过关联的jedis客户端向服务器发送请求*/Response<String>...
2016-03-15 10:49:00
319
转载 vim字符串匹配及替换
首先说三个常用的命令: 1.查找匹配字符串出现的次数 :%s/字符串/&/gn 2.在m和n行之间查找匹配字符串出现的次数 :m,ns/字符串/&/gn 3.删除匹配字符串出现的所有行 :g/字符串/d 下面分析各个子命令的用处:...
2016-01-04 11:05:00
1736
转载 lightweight java profiler与java flame graph初了解
了解java程序中CPU占用情况对于java程序开发,尤其是后台服务开发来说是一件必要且重要的事情。在分析高并发下服务性能压力时,需要了解程序中长时间占用CPU的程序块。这需要我们使用分析器(profiler)在java进程运行的过程中定时抽样分析。 lightweight java pro...
2015-12-29 10:20:00
246
转载 从一个小问题出发来理解Set中的hashCode与equals
集合类中的hashCode和equals是两个比较容易混淆的接口。我在准备面试的时候就经常被绕晕,后来把区别索性死记硬背了下来。最近又用到了这一知识,才下决心搞明白它。 先说一下我用到的场景。有一个自定义的类Event,其中包含了若干字段: publicclassEvent{...
2015-12-25 18:45:00
82
转载 linux操作记事簿
搜索文件名 find[path]-name"[name]" 搜索文件内包含的字符串 find[path]-name"[name]"|xargsgrep"[string]"# xargs: 将前面命令的内容分割成小段,分别作为参数传给后面的内容。# ...
2015-12-16 09:40:00
99
转载 java volatile内存机制
根据《深入立即JVM》,volatile有两大特性。第一,可见性;某一线程修改volatile变量之后,其他线程会立刻得知。原理是volatile变量在某线程修改后会立刻写到主内存中去,而其他线程每次用之前都会从主内存读取(刷新)一次。第二,禁止字节码重排序;比如写入两个a、b,可能会优化指令...
2015-09-09 15:03:00
86
转载 一致性raft算法
一致性raft算法演示,言简意赅回味无穷 http://thesecretlivesofdata.com/raft/ 转载于:https://my.oschina.net/dokia...
2015-05-13 17:49:00
81
转载 一致性哈希
对于键值的哈希算法,一般是将得到的哈希值对哈希空间长度取余,即 hash(key)%len;//key为键值,len为哈希空间长度 然后将键值按哈希值存储在数组下标中。 这种哈希处理有个问题,即当哈希空间长度动态变化时,已存储的键值对(key-value)无法再通过键值获得,为...
2015-05-12 15:00:00
88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人