python算法----背包九讲 # 背包九讲1def Hello(): print("01背包问题完全背包问题多重背包问题多重背包问题(二进制优化)多重背包问题(单调队列优化)混合背包问题二维背包问题分组背包问题")Hello()''' 01背包问题: 有N件物品,一个容量为V的背包,第i件物品的价值为value[i-1],重量为weight[i-1]; 在体积不超过背包容量的情况下,返回价值最高的方法; 每种物体只有一件,可以选择放还.
操作系统导论(一)----导论和虚拟化CPU 一、导论 · 三个模块: 虚拟化 (虚拟化CPU、虚拟化内存)、并发、持久化 · 程序运行的流程: 1. CPU获取一条指令 2. 对其解码 (弄清楚这是哪条指令) 3. 执行它 完成这条指令之后,处理器继续执行下一条指令,直到程序最终完成; · 虚拟化: 1. 操作系统将物理资源 (如CPU、内存、磁盘)转换为更通用、更强大且易于使用的虚拟形式; 2. 虚拟化可.
Docker从精通到入门(三)----libcontainer ### libcontainer版本1.2.0### libcontainer源码可以在vendor中找到一、libcontainer介绍 1. Docker的本质离不开Linux内核的很多高级特性; 2. Docker Daemon作为一个常驻进程,管理Client请求的同时,还管理所有的Docker容器; Linux操作系统内核态对容器的管理,需要为用户态的Daemon服务, 如果在Daemon与Linux内核之间有一套完善的API接口,那么两者的衔.
关于Go协程的一些理解 Goroutine的调度这段代码执行后的输出是什么?代码逻辑猜猜会发生什么GMP模型总结如何创建协程回到问题当goroutine数量超过256会怎么样呢?总结这段代码执行后的输出是什么?package mainimport ( "fmt" "runtime" "sync")var wp sync.WaitGroupfunc m(n int) { fmt.Printf("%v "n) wp.Done()}func main() { runtime.GOMAXPROCS(1)
Golang源码学习(二)----Go源码学习基础 ### 本文源码版本为 GO 1.17.8 Windows/amd64;### 可能参与对比的版本:GO 1.16.2 Linux/amd64一、Golang的编译器究竟是如何工作的? (学习源码有什么意义) 1. 能修改go语言程序源码 (从某种意义上来说你可以定制一个属于你的语言) 2. 以语言开发者的角度去学习语言本身 (直接感受顶尖的设计思路,实用性算法和数据结构的学习) 3. 理解go语言语法糖以及原生性的实现原理 (拒.
Golang源码学习(一)----从0开始学编程 一、Go源码学习的环境搭建 (CentOS_8) 选择的是CentOS8中最小化安装 前往家目录 cd 创建go工作空间 mkdir go cd go mkdir repos 获取安装包 wget https://dl.google.com/go/go1.16.2.linux-amd64.tar.gz 解压安装包 tar zxf go1.16.2.linux-amd64.
Go数据结构----跳表skiplist /* 随便写的,只用于简单体现结构特性 */package skiplistimport "fmt"type skiplist struct { head *skiplistNode tail *skiplistNode len int level int}type skiplistNode struct { value uint nexts []*skiplistNode backward *skiplistNode}func (sl *skipl.
Redis半知半解(三)----通信协议与命令对象 一、Redis通信协议 · Redis基于RESP(Redis Serialization Protocol)协议来完成客户端和服务端的通信; RESP本质是一种文本协议,实现简单、易于解析。 · 客户端和服务端通过tcp/流式域套接字来进行通信,为了防止粘包因此命令或数据结构以\r(CRLF)结尾 (tcp会解分字节流,所以会混在一起) · 请求 get username:1234 --> *2\.
简单了解MapReduce 一、MapReduce解决了什么问题? · 在处理大规模问题时,每次都需要考虑多级并行协调、网络通信、处理错误、提高执行效率的问题 · 这些问题严重降低了开发的效率,MapReduce编程模型就是用于解决这个问题的 · 将这些通用性的问题抽象化,使得能让多台普通的机器也能处理大规模问题 · MapReduce就是为了解决多级并行协调、网络通信、处理错误、提高执行效率等通用性问题的编程框架二、MapReduce是什么? · 大量重复.
Docker从精通到入门(二)----Docker Client ########获取docker1.2的源码 docker pull docker-dev:v1.2.0 docker run --rm -it --privileged -e BUILDFLAGS -e DOCKER_CLIENTONLY -e DOCKER_EXECDRIVER -e DOCKER_EXPERIMENTAL -e DOCKER_GRAPHDRIVER -e DOCKER_STORAGE_OPTS -e DOCKER_USERLANDPROXY -e TESTDIRS .
Docker从精通到入门(一)----Docker的大致架构 ########本系列无运维实践############想看运维相关建议直接划走######系列是基于Go源码浅层分析,不涉及进一步的编译#######理论来源Docker 1.2,源码为docker-ce 18.09(docker-ce集成了Client和Daemon,因为暂时找不到基于docker-ce的完整分析,所以文章夹带了大量作者的个人理解)(最新版本的Docker-ce 不再将Client和Daemon集合到一个项目中,而是分散在了两个项目)(最新版本的Clinent:http.
Redis半知半解(二)----浅谈Redis的持久化和高可用 一、AOF持久化 1. AOF持久化是怎么实现的? AOF会将Redis执行的每一条写操作都以追加的方式写入到一个文件中,重启Redis是先去执行整个文件就能恢复数据了; Redis的AOF持久化功能默认是不开启的,因为与Redis的设计理念冲突。 修改conf文件中的appendonly字段 和 appendfilename字段开启AOF持久化 Redis先执行操作才会写入到AOF日志中, 好处: · 只有语.