goroutine与操作系统(OS)线程的区别

1、可增长的栈每个OS线程都有一个固定大小的栈内存(通常为2MB),栈内存区域用于保护在其它函数调用期间那些正在执行或临时暂停的函数中的局部变量。而一个goroutine在生命周期开始时只用一个很小的…

Read More...


多线程简介

多线程的介绍进程与线程:用正确方式命名事物现代操作系统能够同时运行多个程序。这就是为什么你能够在浏览器(一个程序)中阅读文章的同时也可以通过媒体播放器(另一个程序)来听音乐。每个程序都被称为一个正在被…

Read More...


值传递与引用传递的理解

要更好的理解值传递与引用传递,首先需要了解2个概念:形参与实参1、形参方法被调用时需要传递进来的参数,如:func(a int) 中的a,它只有在func被调用期间a才会有意义,也就是会被分配内存空间…

Read More...


既然是LNMP架构,我们就由L、N、M、P一个个来分析:首先是Linux,我们可以登陆服务器使用TOP命令看下服务器负载,如果是服务器负载高的话,先观察一下是哪个服务导致的,是不是必须服务,不是的话就…

Read More...


同步,异步,阻塞,非阻塞的概念

同步与异步是关于指令(程序)执行顺序的概念:比如你的一段代码里面有A,B两个函数。同步就是你调用A函数,需要一直等待A函数返回调用结果之后再去执行B函数异步就是你在调用A之后,不等待A返回结果,而是直…

Read More...


向socket里面写数据时出现errno=11和errno=32的原因

最近用swoole写了一个TCP服务器,作用是监听9501端口发送来的消息,然后处理之后发送到mqtt服务器。在测试性能时,我发现连接mqtt服务器的socket经常会出现errno=11 resource temporarily unavailable(资源暂时不可用)和errno=32 Broken pipe(管道破裂)错误。经过在几天的资料查找,基本上弄清楚了这两个错误出…

Read More...


书山有路勤为径 学海无涯苦作舟