摘要
本文部分内容来源于网络,个人收集整理,请勿传播
碰到网络问题的场景。可以使用一些命令来快速定位问题,而能够用来排查网络问题的命令多种多样。
本文以以下几个维度来筛选出一些网络相关的命令仅供大家参考
- 尽量常用系统覆盖全面(centos/ubuntu/)
- 使用简单,安装即用
- 显示明了,快速定位
推荐命令如下
- 查看进程流量:nethogs
- 查看明细流量以及总流量:iptraf
- 查看历史数据:sar
- 生成报表:dstat
isme正是在下
本文内容转自网络,个人学习记录使用,请勿传播
只要掌握了数据结构中的四大法宝,就可以包打天下,他们是:array 、linked list 、hash table、binary tree 。这四大法宝可不是各自为战的,灵活结合才能游刃有余。比如,一个用 hash table 组织的 symbol table,其中个个都是由字符型 array 构成的 linked list 组成的。 — Go 语言之父 Rob Pike
Go 语言里面的数组其实很不常用,这是因为数组是定长的静态的,一旦定义好长度就无法更改,而且不同长度的数组属于不同的类型,之间不能相互转换相互赋值,用起来多有不方便之处。
切片是动态的数组,是可以扩充内容增加长度的数组。当长度不变时,它用起来就和普通数组一样。当长度不同时,它们也属于相同的类型,之间可以相互赋值。这就决定了数组的应用领域都广泛地被切片取代了。
不过也不可以小瞧数组,在切片的底层实现中,数组是切片的基石,是切片的特殊语法隐藏了内部的细节,让用户不能直接看到内部隐藏的数组。切片不过是数组的一个包装,给顽固的数组装上了灵活的翅膀,让石头也可以展翅飞翔。
本文内容来源于网络,个人收集整理,请勿传播
目前几种主流的并发模型:
协程coroutine
是Go语言中的轻量级线程实现,由Go运行时runtime
管理。
在一个函数调用前加上go
关键字,这次调用就会在一个新的goroutine
中并发执行。当被调用的函数返回时,这个goroutine
也自动结束。需要注意的是,如果这个函数有返回值,那么这个返回值会被丢弃。
协程是 golang 并发的最小单元,类似于其他语言的线程,只不过线程的实现借助了操作系统的实现,每次线程的调度都是一次系统调用,需要从用户态切换到内核态,这是一项非常耗时的操作,因此一般的程序里面线程太多会导致大量的性能耗费在线程切换上。而在 golang 内部实现了这种调度,协程在这种调度下面的切换非常的轻量级,成百上千的协程跑在一个 golang 程序里面是很正常的事情
本文内容转自网络,个人学习记录使用,请勿传播
Go
是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go
是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson
主持开发,后来还加入了Ian Lance Taylor, Russ Cox
等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1
稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
最初Go
语言的Logo
是一只可爱的土拨鼠,土拨鼠昼伏夜出的习性让它显得很有Geek
范。土拨鼠的行动其实并不敏捷,不过它繁殖能力很强,生长发育的很快。
到了 2018年,Go 语言重新制定了 Logo,消灭了土拨鼠,取而代之的是纯文字。这好像是在告诉用户 Go 语言不再是一个玩具语言,而是一个严肃的高效的正式语言。