摘要:
1. 概念 1. 镜像 包含文件系统的面向Docker引擎的只读模板,给应用程序提供运行环境。CentOS、Ubuntu镜像指装载有该操作系统的模板,也可以在这之上装一些软件,例如Nginx镜像,Flask镜像等。 2. 容器 容器是指镜像创建的实例,相当于一个轻量级的虚拟机,Docker利用容器来 阅读全文
摘要:
Java8引入Stream,主要用来处理集合,可以执行查找,过滤,映射等操作 特点: 不是数据结构,不会保存数据 不会修改原来的值 流在中间过程中只是对操作记录,并不会立即执行(惰性求值) Stream操作 1. 创建流 //Collection List<String> list = new Ar 阅读全文
摘要:
1. Spring的几个概念 非侵入式框架 侵入式:对于EJB,Structs这样的框架,要实现特定的接口,继承特定的类才能增强功能,改变了类的结构 非侵入式,对于Hibernate,Spring等,通过AOP等技术,对现有类无影响,增强JavaBean功能 松耦合框架 面向接口编程,通过实现对应的 阅读全文
摘要:
1. golang锁状态 mutexLocked 互斥锁的锁定状态 mutexWoken 从正常模式被唤醒 mutexStarving 当前的互斥锁进入饥饿状态 waitersCount 当前互斥锁上等待的协程个数 2. 正常模式和饥饿模式 正常模式 所有goroutine安装FIFO顺序等待,唤醒 阅读全文
摘要:
1.按照实现方式 按照实现方式分为乐观锁和悲观锁,并不是真实存在的锁,而是设计思想 乐观锁 认为资源和数据不会被别人修改,读取不会上锁,但是写入操作会判断是否被修改过 使用场景: 高性能、高可用、高并发的场景,适用于写操作比较少的场景,冲突比较少 实现方案: 版本号机制 版本号机制是在数据表中加上一 阅读全文
摘要:
1. fmt.Printf 通用占位符: %v 以默认值打印 %+v 以默认值打印,输出结构体会输出字段名 %#v 结果为:%T+%+v %T 输出值类型 %% 打印%本身 打印字符串 %s 输出字符串表示 %q 双引号围绕字符串 %x 输出十六进制,小写字母,每字节两个字符 %X 输出十六进制,大 阅读全文
摘要:
协程的使用: func()执行一个函数 go func() 开启一个协程执行函数 1. 信道chan var pipline chan int pipline:=make(chan int) //发送数据 pipline<-1 //接收数据 data:=<-pipline //关闭信道 close( 阅读全文
摘要:
1. byte与rune 字符串 byte 占用1个字节,8个bit,范围为0->255(uint8) rune 占用4个字节,32个bit,范围为0-2^32(int32)(字符集大,中文必须使用这个) func main() { var a byte = 'A' var b rune = 'B' 阅读全文
摘要:
线程通信(IPC) 管道(通过共享存储空间实现,一方写入,一方读取)(在同一操作系统通信) 无名管道 使用管道的两个线程必须存在某种联系(例如父子线程) 记名管道 不同进程间的线程通信 套接字(跨应用,跨网络通信) 使用套接字通信双方均创建一个套接字,一方为服务端,一方为客户端,服务器先创建套接字并 阅读全文
摘要:
Linux内存管理 物理内存 三个级别 Page 大小为4k,内存的基本单位 Zone 管理Page的队列 ZONE_DMA 内核专用,存放DMA(直接存储器访问)读取IO设备的数据 ZONE_NORMAL 内核专用,存放内核的相关数据 ZONE_HIGHMEM 高端内存 用户进程存放数据 Node 阅读全文