Muxx


  • 首页

  • 归档

  • 标签

  • 关于

  • 搜索

go高级编程

发表于 2019-07-23

简短声明方式来单独为一个变量重复声明, := 左侧至少有一个新变量,才允许多变量的重复声明:

1
2
3
4
5
// 错误示例
func main() {
one := 0
one := 1 // error: no new variables on left side of :=
}
阅读全文 »

进程间通信IPC

发表于 2019-07-21

管道

平时就在使用,比如’ps -ef|grep http’。
管道采用的是半双工的工作方式,也就是数据是单向传输的

阅读全文 »

IDE/编辑器

发表于 2019-07-19

vim

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#编辑
i 光标前插入
a 行尾追加
ZZ 快速保存退出
#查找
/words
#快速查找某词
让光标停留在想要查找的单词的任意一个字母上面, 然后输入Shift + * ,即可快速选中该单词,并且可以通过 n 或 N 进行上一个或下一个的匹配。
#替换
:%s/from/to/g 对所有行内容进行替换
:20,30s/from/to/g 对20-30行中内容进行替换
:%s/|/\r/g 将|替换为换行符
#区域选择(配合操作使用)
v 字符选择,光标经过的字符反白
V 行选择,光标经过的行反白
Ctrl + V 块选择,光标框中的块反白
* 操作: y 复制|d 剪切
##区域连续操作
v->e->y 选择并复制当前单词
## 窗口操作
vim -o file1 file2 file3 水平划分窗口方式打开多个文件
vim -O file1 file2 file3 垂直划分窗口方式打开多个文件
:sp 水平复制新窗口
:vs 垂直复制新窗口
:sp file 水平打开新窗口
:vs file 垂直打开新窗口
# 执行shell命令
:!shell命令
阅读全文 »

网络编程IO复用之epoll

发表于 2019-07-19

背景

在阻塞I/O下,一个线程只能处理一个流的I/O事件,这个流的处理卡住会阻塞整个线程。如果想同时处理多个流,要么多进程fork,要么多线程。很不巧两种方法效率都不高,这时I/O复用就诞生了。

首先定义流的概念,一个流可以是文件、socket、pipe等可以进行I/O操作的内核对象。所以不管你是文件,套接字还是管道我们都可以把他们看做流

要完成I/O复用要完成以下几件事情
1.用户态怎么将fd传递到内核态
2.内核态如何判断fd可读可写
3.内核怎么通知监控者fd可读可写
4.监控者这如何找到可读可写的fd并传递给用户态程序
5.继续循环时监控者这怎么重复上述步骤?

下面以fd来代表表示所有流

阅读全文 »

Linux操作系统之零拷贝技术

发表于 2019-07-17

Linux kernel 2.2之前,(如图)读写数据基本都是使用read系统调用和write系调用,以nginx来说如果一个请求建立,从磁盘的文件到网络连接之间会通过硬件(DMA)—-内核层—-用户层多次读写系统来完成文件数据的复制传输:从内核层用read系统调用读到用户层,再从用户层用write系统调用写到内核层,每一次用户层到内核层的进行一次上下文转换,这种代价是非常昂贵的。甚至在没有数据变化时这种复制尤其显得多余。如果nginx接受大量并发请求,这种系统调用就会非常频繁,服务器的性能就会下降。

阅读全文 »

tcp协议之backlog

发表于 2019-07-16

基本概念

20190716156324798318236.png

阅读全文 »

k8s知识梳理

发表于 2019-07-15

Docker背后的内核知识

Docker容器本质上是宿主机上的进程。

Docker通过namespace实现了资源隔离,通过cgroups实现了资源限制,通过写时复制(copy-on-write)实现了高效的文件操作。

阅读全文 »

redis源码分析

发表于 2019-07-09

redis数据结构

sds

1
2
3
4
5
struct sdshdr {
int len; // 记录buf数组中已使用字节的数量 等于SDS所保存字符串的长度
int free; // 记录buf数组中未使用字节的数量
char buf[]; // 字节数组,用于保存字符串
};

相比C字符串,SDS具有以下优势:

  • 常数复杂度获取字符串长度
  • 杜绝缓冲区溢出
  • 减少修改字符串长度时所需的内存分配次数
  • 二进制安全
  • 兼容部分C字符串函数

二进制安全: 二进制数据在写入时是怎么样的,读取时就是怎么样,那么就是二进制安全的

20190710156275871060968.png

阅读全文 »
1…789…29
Mu

Mu

230 日志
53 标签
© 2021 Mu
由 Hexo 强力驱动
主题 - NexT.Pisces