快速熟悉开源项目

《Docker-容器与容器云》中的一篇文章,觉得挺不错,所以从网上转载了一份过来。原文:快速熟悉开源项目 查阅文档查阅文档包括查阅文档与博客,最好是带着问题去阅读。 1.查阅文档与博客一个好的开源项目未必会火,但是一个火的开源项目一定有其可取之处,而从众心理又会让更多人去研究它。所以,要熟悉你想研究的开源项目,第一步就是在搜索引擎中查找该项目的博客和资料。通...

阅读全文

Go tour(3)-Concurrency

并发 gorotine 协程 channel 信道 123ch := make(chan TYPE, BUFFER_SIZE) // 创建一个信道go FUNC(ch) // 用协程执行FUNC,并传递一个信道for y := range ch // 用range循环等待 练习:比较二叉树是否存储相同的值1234567891011121314151617...

阅读全文

Go tour(2)-Methods and Interfaces

方法Go没有类,方法跟函数的区别就是多了一个接收器Receiver 指针接收器,接收到的变量是指针形式的,意味着可以修改原变量。pointer receivers比value receivers更加常见。 函数的参数为指针必须显式传入一个指针,但如果是方法,Go解释器会隐式地将对象的指针传入,不需要显式取地址。同样的情况也发生在参数为值value的情况下,方...

阅读全文

Go tour(1)-Basics

基础语法123456789101112131415161718192021// :=是在函数内部声明变量并赋值,在函数外部不能用// 变量用var,常量用const,常量不能用:=k := 3const K int = 3var k = 3// 返回值可以命名,可以多个func split(sum int) (x, y int) { x = sum...

阅读全文

CS6.824(1)-mapreduce

整体架构master: 获取Job信息,决定mapper和reducer个数,并分割文件。同时接收来自worker的注册,根据一定策略调度task给可用的worker,并进行出错处理。 worker: 执行具体的mapper或者reducer。 map阶段: map(k1, v1) -> list(k2, v2) reduce阶段: reduce(k2...

阅读全文

Fluent Python(17-18)——并发

17. concurrent处理多进程和多线程两种方式 线程池和进程池:ThreadPoolExecutor和ProcessPoolExecutor ThreadPoolExecutor.map(func, list_of_param)返回生成器,获取各个函数返回的值。获取返回值时会阻塞,返回结果的顺序与调用的顺序一致。 ThreadPoolExecutor...

阅读全文

Fluent Python(14-16)——从迭代器到协程

14. 迭代器与生成器 可迭代的对象:使用iter内置函数可以获取迭代器的对象。如果对象实现了__iter__方法,能够返回一个迭代器,那么对象就是可迭代的。 迭代器:对象实现了__next__返回序列中的下一个元素。迭代器还实现了__iter__返回self,因此迭代器也可以迭代。 生成器函数:函数的定义体中有yield关键字,该函数就是生成器函数。调...

阅读全文

李航《统计学习方法》代码实现

学习《统计学习方法》时实现了一部分算法,整理在GitHub上 李航《统计学习方法》代码实现

阅读全文

Docker学习笔记(二)-工具及底层实现

Docker composeCompose 中有两个重要的概念: 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。 命令有点类似docker 123456# 构建项目中的服务容器docker-c...

阅读全文

RabbitMQ学习笔记

1. 安装1apt install rabbitmq-server 2. 基本原理一篇比较好的原理介绍文章:消息队列之 RabbitMQ Exchange分发消息时根据类型的不同分发策略有区别,目前共四种类型:direct、fanout、topic、headers 。headers 匹配 AMQP 消息的 header 而不是路由键,此外 header...

阅读全文