Huweicai
Home
(current)
About
Archives
Huweicai
好奇心探索世界
善意假设
做最酷的事情
Hello, World!
~ Enjoy Today ~
Categories
Go (3)
English (1)
Featured Tags
linux (10)
操作系统 (7)
go (6)
容器 (6)
编程语言 (6)
计算机网络 (6)
存储 (5)
cloudnative (4)
kubernetes (4)
cilium (2)
cpp (2)
cpu (2)
docker (2)
ebpf (2)
ip (2)
java (2)
kernel (2)
命令行 (2)
硬件 (2)
c++ (1)
compiler (1)
en (1)
ethernet (1)
git (1)
harbor (1)
http (1)
innodb (1)
jvm (1)
mysql (1)
pprof (1)
programing (1)
programming (1)
python (1)
redis (1)
shell (1)
tcp (1)
yuv (1)
办公效率 (1)
图像 (1)
并发 (1)
数据库 (1)
文件系统 (1)
日志 (1)
权限管理 (1)
磁盘 (1)
镜像 (1)
音视频 (1)
««
«
1
2
3
4
5
6
7
»
»»
找出使用最频繁的Shell命令
2020-03-20
5 minutes read
使用最频繁 TOP 10命令: history | awk '{map[$2]++} END { for (a in map )print map[ a ]" " map[ a ]/NR*100 "% " a }'| sort -rn | nl | head 先上成品,然后,我们一步一步分析这行语句都涉及到了命令,它们又是如何拼凑到一块儿完成我们的目的的。 Shell 首先我们需要明确一下 shell 的定义,大家可能经常听到 shell ,shell 脚本这些词,那么 shell 到底是什么呢? Shell 翻译成中文的意思就是壳,和操作系统内核的核相对应,就是一个基于内核的可操作界面。可操作性界面又分为两种: 图形界面类:Graphi......
linux
shell
进程线程协程的本质区别
2020-03-17
10 minutes read
现代多任务操作系统通常都会有进程的概念来对任务进行隔离,而为了充分利用多核处理器性能同时又减少进程创建的开销,通常又都会引入更细粒度的调度单元:线程。 我们经常能在教科书上看到对于进程和线程的定义: 进程是操作系统分配资源的最小单位,线程是进行调度的最小单元。 这句话没错,但是只是从职责上给出的定义,而不是基于底层实现出发的。 广义上的线程分为内核态线程和用户态线程两种,内核态线程受操作系统直接调度可以充......
操作系统
Go
Linux
Go语言sync包实现原理分析
2020-01-10
6 minutes read
Java 语言中有一个 java.util.Concurrent 包提供了大量的并发工,而 Go 语言中也有这样的角色:sync包。 sync.Mutex 锁实现原理 sync.Mutext 是 Go 提供的一种同步原语,用于表达互斥,不过不推荐在业务中使用,根据 Go 的设计思想,应首先考虑通过传递消息(管道)来共享内存,而不是通过共享内存来传递消息 Mutex 结构体如下,只有两个变量,非常简单: type Mutex struct { state int32 // 状态,bitmap sema uint32 // 信号量 } state 字段是一个位图 第 0 位表示是否加锁 第 1 位表示是否已唤醒 第 2 位表示是否为饥饿模......
go
并发
编程语言
Go 多路条件语句 Switch 语法详解
2020-01-02
3 minutes read
Switch 是 Go 语言中一种多路条件语句,一般搭配 case 语句使用。 执行逻辑 一个 switch case 条件结构如下所示: switch simpleStatement; condition { case expression1,expression2: statements case expression3: statements default: statements } 和 if 语句类似,switch 语句也可以在条件语句之前执行一段简短的表达式(可以用于很方便的控制变量的作用域),switch case 开始执行时,会先执行这一个表达式(空也算一种),然后计算出条件语句的值,接着按从上到下,从左到右的顺序一个一个的执行 case 语句的条件表达式,如果值相等的话就会进入执行 case 条件......
go
go
编程语言
MySQL建表选项
2019-11-13
7 minutes read
这是一个很常见的 SQL 建表语句: CREATE TABLE `people` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(40) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 SQL 建表语句结构如下: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options] 我们对照结构可以看到我们的建表语句最后一部分是表选项,而在这里我们指定了两个选项:引擎和字符集,那么总共都有哪些选项可以设置呢?参照MySQL官方文档,我们一起来看看。 AUTO_INCREMENT MySQL 一张表中可以指定一个字段为 auto increment,这样在当这个字段没有指定值时就在当前表最大值的基础上自增,在插入了自增的一......
MySQL
InnoDB
数据库
存储
在线 Markdown 转 PDF 工具评测
2019-07-02
2 minutes read
用 Markdown 写了这么久博客,对于这种简约风格还是非常喜欢的,所以在写一些其他文档的时候我也更倾向于这种格式。最近需要写一些 PDF 格式的文档,所以我找了一些在线 Markdown 转 PDF 的网站,不同的网站渲染出来的风格并不一样,我在下面做了一个对比,帮助大家进行选择。 测试数据 # 测试测试 1111111111 / 测试 / 123 Email: test@test.com Test: test Website: https://github.com.cn * * * 123213123 测出测试 真的测试 测试吧 * * * # 二阶段测试 - 真的测试测试 - 真的测试测试/真的测试测试 - 微博:[@Easy](http:......
办公效率
Java跨平台究竟能跨哪些平台
2019-05-20
3 minutes read
众所周知,Java跨平台的一直被众多Java程序员们津津乐道,“一次编写,到处运行”的设想着实令人心动,虽然会带来一定性能上的问题,但这并不妨碍大家对Java的喜爱,既然都说Java能跨平台,Java 也并不是凭空就能跑在任何机器上,这是不现实的,需要官方针对对应的平台,编译一套对应平台包括 Java 虚拟机(Java Runtime Environment 简称 JRE)在内的 Java 开发工具集(Java Develop Kit,简称 JDK),这样我们编写的 Java 代码才算......
java
jvm
««
«
1
2
3
4
5
6
7
»
»»