gorm学习使用

gorm的使用安装 使用指令进行安装:go get github.com/jinzhu/gorm DDL操作前提 新建一个数据库gorm_project 指定使用Utf8编码 数据库连接 对应的代码 12345678910111213141516171819202122232425262728293031323334353637...
go

极客时间-畅聊Go发展和面试

go语言是基础架构层 paas 的最重要的项目

linux下的五种网络IO模型以及select/poll/epoll区别

前提知识:了解同步/异步,阻塞/非阻塞

参考:聊聊同步、异步、阻塞与非阻塞

正题:5种IO模型

  1. 同步阻塞
  2. 同步非阻塞
  3. 异步IO
  4. IO多路复用
  5. 信号驱动IO

参考:聊聊Linux 五种IO模型

select/poll/epoll区别

select, poll,以及epoll都是多路复用。

配合视频享用更加

这里插入我们的pdf图。。

场景:设计一个高性能的网络服务器,可以向多个客户端提供同时连接,并且可以处理这些客户端的请求。如何设计呢?

互联网系统架构演进之路

AtO9FL

dgn2mz t3v8sJ

E6ZtYU

基本数据结构-map

什么是map 为什么要用map map的底层如何实现 map内存模型 创建map 哈希函数 key定位过程 map的两种get操作 【面试重点】如何进行扩容 【重点】map的遍历 map的赋值 map的删除 map进阶 可以边遍历边删除么 key可以是float类型么 总结 参考资料 面试经常被问到golang map的扩容,特此记录下来 map的结构 golang中map是...

redis知识汇总

redis就数据结构 单线程 高可用 缓存应用 reidis 数据结构!> redis中键的类型是字符串,值的数据类型有很多 字符串 列表 字典 集合 有序集合 bitmap hyperloglog geospatial stream(5.0推出的数据类型。支持多播的可持久化的消息队列,用于实现发布订阅功能,借鉴了kafka的设计。 对应的底层实现: 字符串: embstr...
redis

进程,线程与协程区别和联系

!> 很多题目还没有完善,之后会慢慢补充并完善……

进程概念

进程:正在执行程序的一个实例,是资源分配的基本单位。(进程控制块(process control block)描述进程的基本信息和运行状态,所谓的创建和撤销进程,都是指对PCB的操作)

线程概念

线程:进程中的单条流向,是程序独立调度的基本单位。(线程控制块(process control block)描述线程的基本信息和运行状态,所谓的创建和撤销线程,都是指对TCB的操作)

协程概念

协程可以理解为用户态的线程,其实就是可以被暂停以及可以被恢复运行的函数。虽然线程也可以自己暂停和恢复,只不过线程的调度是操作系统实现的,这些对程序员都不可见,而协程是在用户态实现的,对程序员可见。这就是为什么有的人说可以把协程理解为用户态线程的原因。
参考

OS

二叉树,二叉搜索树,AVL树,B树,B+树

二叉树树形结构,但是树中每个节点的分支最多只有两个,我们叫做二叉树 二叉搜索树(BST)!> 二叉搜索树又叫二叉排序树,或二叉查找树。它或者是一颗空树或者是具有下列性质的二叉树: 若它的左子树不为空,则左子树上的所有节点的值均小于它的根节点的值 若它的右子树不为空,则右子树上的所有节点的值均大于它的根节点的值 它的左右子树也分别是二叉排序树 平衡二叉树(AVL)!> 平衡二叉...

go底层汇编学习

虽然go汇编是plan9汇编,但是x86汇编与go汇编是相通的 程序编译的几个阶段:编译->汇编->优化—>链接 一个代码经过汇编之后就生成了汇编代码,然后经过编译器优化,优化之后进行链接,最终得到可执行程序。这里说的优化是汇编优化,实际上我们在所有阶段都有优化, 编译的话,广义上就是指的我们整个编译阶段,狭义上的话就是说词法语法分析,但是这个阶段还没有编译 我们虽然写的是...