上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 21 下一页
摘要: 信息存储 大多数计算机使用8位的块,或者字节(byte),作为最小的可寻址的内存单位,而不是访问内存中单独的位。机器级程序将内存视为一个非常大的字节数组,称为虚拟内存。内存的每个字节都由一个唯一的数字来标识,称为它的地址,所有可能地址的集合就称为虚拟地址空间。顾名思义,这个虚拟地址空间只是一个展现给 阅读全文
posted @ 2018-12-01 16:09 北洛 阅读(1270) 评论(0) 推荐(0) 编辑
摘要: 设计构造块 设计现实世界中的对象 在确定设计方案时,首选且最流行的一种做法便是“常规的”面向对象设计方法,此方法的要点是辨识现实世界中的对象(object,物体)以及人造的(synthetic)对象。 使用对象进行设计的步骤是: 辨识对象及其属性(方法(method)和数据(data))。 确定可以 阅读全文
posted @ 2018-11-28 11:36 北洛 阅读(366) 评论(0) 推荐(0) 编辑
摘要: cgroups资源限制 上一节中Docker背后的内核知识(一),我们了解了Docker背后使用的资源隔离技术namespace,通过系统调用构建了一个相对隔离的shell环境,也可以称之为简单的“容器”。这一节将讲解另一个强大的内核工具——cgroups。它不仅可以限制被namespace隔离起来 阅读全文
posted @ 2018-11-25 21:36 北洛 阅读(1133) 评论(0) 推荐(0) 编辑
摘要: Docker背后的内核知识 当谈论Docker时,常常会聊到Docker的实现方式。很多开发者都知道,Docker容器本质上是宿主机上的进程。Docker通过namespace实现了资源隔离。通过cgroups实现了资源限制,通过写时复制机制实现了高效的文件操作。但更进一步深入namespace和c 阅读全文
posted @ 2018-11-25 11:26 北洛 阅读(7866) 评论(0) 推荐(0) 编辑
摘要: Docker操作参数解读 用户在使用Docker时,需要使用Docker命令行工具与Docker daemon建立通信。Docker daemon是Docker守护进程,负责接收并分发执行Docker命令。随着Docker的不断发展,docker 的子命令已经达到41个(attach、build), 阅读全文
posted @ 2018-11-18 13:29 北洛 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 设计中的挑战 “软件设计”意味着去构思。创造或发明一套方案,把一份软件的规格说明书变成功能可运行的软件。设计就是把需求分析和编码调试连起来的活动。好的高层次设计能提供一个稳妥容纳多个较低层次设计的结构。好的设计对于小型项目非常有用,对于大型项目就更是不可或缺。 设计是一个险恶的问题 设计是一个险恶的 阅读全文
posted @ 2018-11-15 08:56 北洛 阅读(999) 评论(0) 推荐(0) 编辑
摘要: 反射的值对象 反射不仅可以获取值的类型信息,还可以动态地获取或者设置变量的值。Go语言中使用reflect.Value获取和设置变量的值。 使用反射值对象包装任意值 Go语言中,使用reflect.ValueOf()函数获得值的反射值对象(reflect.Value)。书写格式如下: reflect 阅读全文
posted @ 2018-11-07 20:39 北洛 阅读(1868) 评论(0) 推荐(1) 编辑
摘要: 结构体转JSON JSON格式是一种用途广泛的对象文本格式。在Go语言中,结构体可以通过系统提供的json.Marshal()函数进行序列化。为了演示怎么样通过反射获取结构体成员以及各种值的过程,下面使用反射将结构体序列化为文本数据。 1.数据结构及入口函数 将结构体序列化为JSON的步骤如下: 参 阅读全文
posted @ 2018-11-07 20:39 北洛 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 反射 反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。支持反射的语言可以在程序编译期将变量的反射信息,如字段名称、类型信息、结构体信息等整合到可执行文件中,并给程序提供接口访问反射信息, 阅读全文
posted @ 2018-11-04 17:56 北洛 阅读(2778) 评论(1) 推荐(1) 编辑
摘要: 同步 Go 程序可以使用通道进行多个 goroutine 间的数据交换,但这仅仅是数据同步中的一种方法。通道内部的实现依然使用了各种锁,因此优雅代码的代价是性能。在某些轻量级的场合,原子访问(atomic包)、互斥锁(sync.Mutex)以及等待组(sync.WaitGroup)能最大程度满足需求 阅读全文
posted @ 2018-11-04 13:06 北洛 阅读(272) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 21 下一页