摘要:
转自:https://mp.weixin.qq.com/s/HUqTC6i7aSUBVq0bsqfQXw sync.WaitGroup() 用来做Goroutine的等待,当使用go启动多个并发程序,通过waitgroup可以等待所有go协程结束后再执行后面的代码逻辑 用途:阻塞协程的执行,直到所有 阅读全文
摘要:
原子操作:操作仅由一个独立的CPU指令代表和完成。保证并发环境下原子操作的绝对安全 标准库代码包:sync/atomic atomic是最轻量级的锁,在一些场景下直接使用atomic包还是很有效的 CAS操作的优势是,可以在不形成临界区和创建互斥量的情况下完成并发安全的值替换操作。这可以大大的减少同 阅读全文
摘要:
主流的语言都支持,可链接到 github ,亲测golang client 简单好用 http://www.eclipse.org/paho/downloads.php 阅读全文
摘要:
#include #include #include #include #include int main(int argc, char *argv[]) { /* 服务器端套接字 */ int server_sockfd; /* 客户端套接字 */ int client_sockfd; int len; /* 服务器网络地址结构体 */ struct sockaddr... 阅读全文
摘要:
本来系统是win7,安装centos是用U盘启动安装方式安装成功后,发现win7的系统引导不见了。之前用的是centos6.4安装后依然保留win7引导的,到centos7就不行了解决方法1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /et 阅读全文
摘要:
1.多看看「官方文档」 我们很多的问题和技术细节,其实,只要我们认真将官方文档过一遍,会发觉大部分的问题和认识模糊的地方都消失了。甚至,你还能发现自己之前通过搜索获得的到一些资料,可能是不准确或者已经过时的。官方文档是真正的好东西,因为编写文档的人群,通常就是这些技术或者软件的开发者,他们才是对这些 阅读全文
摘要:
100万并发连接服务器笔记之处理端口数量受限问题 第二个遇到的问题:端口数量受限 一般来说,单独对外提供请求的服务不用考虑端口数量问题,监听某一个端口即可。但是向提供代理服务器,就不得不考虑端口数量受限问题了。当前的1M并发连接测试,也需要在客户端突破6万可用端口的限制。 单机端口上限为65536 阅读全文
摘要:
100万并发连接服务器笔记之1M并发连接目标达成 第四个遇到的问题:tcp_mem 在服务端,连接达到一定数量,诸如50W时,有些隐藏很深的问题,就不断的抛出来。 通过查看dmesg命令查看,发现大量TCP: too many of orphaned sockets错误,也很正常,下面到了需要调整t 阅读全文
摘要:
网友vmstat多次提出了这个问题:SO_REUSEADDR有什么用处和怎么使用。而且很多网友在编写网络程序时也会遇到这个问题。所以特意写了这么一篇文章,希望能够解答一些人的疑难。 其实这个问题在Richard Stevens的《Unix网络编程指南》卷一里有很详细的解答(中文版P166-168页) 阅读全文
摘要:
实例分析1 将服务器端的listen函数backlog设置为2,用20个客户端与服务器建立连接,查看连接的建立情况。 服务器代码: client代码 实验结果 服务器端显示: 客户端显示: 结果分析: 同时建立连接的客户端进程共有20个,可是只有5个完成了连接的建立,其他15个没有成功。有趣的是,建 阅读全文