随笔分类 - 并发编程
该文被密码保护。
摘要:简单的说,zookeeper=文件系统+通知机制。 每个子目录项如 NameService 都被称作为 znode,和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。 有四种类型的znode: 1、PERSISTE
阅读全文
摘要:看这里: http://blog.csdn.net/lollipop_jin/article/details/8499530 shared_ptr可以多线程同时读,但是涉及到写,需要加锁。 shared_ptr开销较大。 多个(5个以上)shared_ptr共享一个动态对象,那么每个shared_p
阅读全文
摘要:看这篇文章: http://www.cnblogs.com/woaiyy/p/3554182.html 窗口滑动,如下图: 流量控制 流量控制方面主要有两个要点需要掌握。一是TCP利用滑动窗口实现流量控制的机制;二是如何考虑流量控制中的传输效率。 关于二,一个显而易见的问题是:单个发送字节单个确认,
阅读全文
摘要:这篇文章讲的不错 http://blog.csdn.net/liujiyong7/article/details/43346829 先说结论吧: 1. Linux多进程accept系统调用的惊群问题(注意,这里没有使用select、epoll等事件机制),在linux 2.6版本之前的版本存在,在之
阅读全文
摘要:这篇写的不错 http://www.cnblogs.com/linguoguo/p/5511293.html Nginx为啥性能高-多进程异步IO模型 1. 对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。 2. 采用独立的进程,
阅读全文
摘要:开宗明义,epoll以及BSD的kqueue就是推出来解决 C10K的。Linux2.6 2003年左右。 可以看这篇文章 http://www.oschina.net/translate/the-secret-to-10-million-concurrent-connections-the-ker
阅读全文
摘要:我觉得这篇讲的不错。 http://blog.csdn.net/c_cyoxi/article/details/8673645 Nagle算法的基本定义是任意时刻,最多只能有一个未被确认的小段。 关闭:通过加TCP_NODELAY选项。 TCP_CORK 选项: 所谓的CORK就是塞子的意思,形象地
阅读全文
摘要:首先要理解JVM内存模型,可以参考我之前的文章。 然后C++里面其实有一样的指令排序的问题。虽然C++11里面针对happens-before规则做了一些语义上面的支持。但是普通C/C++没有做这些支持。 需要了解我们平时工作所在的x86对于指令排序是可能 store-load重排序的。 而一般最常
阅读全文
摘要:看起来memcache也是用了libevent,然后用了多线程,看起来是accept之后,把socket发给一个worker thread,然后这个thread里面的event loop再接着处理。 http://blog.csdn.net/wallwind/article/details/3927
阅读全文
摘要:虽然还是有一些没有讲全,但是整体还是讲的很不错的。 http://www.ruanyifeng.com/blog/2014/10/event-loop.html
阅读全文
摘要:服务器编程 P347的压力工具代码不错,对于epoll用的好,可以看。
阅读全文
摘要:http://blog.csdn.net/bingqingsuimeng/article/details/9055499 管道pipe是半双工的,pipe两次才能实现全双工,使得代码复杂。socketpair直接就可以实现全双工。 socketpair对两个文件描述符中的任何一个都可读和可写,而pi
阅读全文