半同步/半异步模式: 先解释一下同步和异步的区别,在并发模式中,这里的“同步"指的是程序完全按照代码的顺序执行,“异步”指的是程序的执行需要由系统事件来驱动,比如说信号、中断等。下图就清楚的解释了同步和异步操作的过程: 这样看来,显然异步线程的执行效率高,但是它的编写相对复杂,难于调试,然而同步线程刚好相反,逻辑简单,但效率较差。半同步/半异步模式就结合了同步线程与异步线程的优点,它在 作者:u011438608 发表于 2015/03/31 18:08:57 原文链接 https://blog.csdn.net/u011438608/article/details/44623661 阅读:4366 继续阅读 >>


宋润雨 15/03/31 18:08:57
这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资 作者:u011438608 发表于 2015/02/22 22:51:56 原文链接 https://blog.csdn.net/u011438608/article/details/43910155 阅读:599 继续阅读 >>


宋润雨 15/02/22 22:51:56
上篇中,主要向你介绍TCP协议的定义和丢包时的重传机制。下篇中,重点介绍TCP的流迭、拥塞处理。 首先,我们需要知道TCP在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Link层,在第二层上的数据,我们叫Frame,在第三层上的数据叫Packet,第四层的数据叫Segment。 首先,我们需要知道,我们程序的数据 作者:u011438608 发表于 2015/02/22 22:47:50 原文链接 https://blog.csdn.net/u011438608/article/details/43910103 阅读:598 继续阅读 >>


宋润雨 15/02/22 22:47:50
要想实现并发编程,最简单的模式就是1个进程/线程处理1个连接的全部生命周期,当我们使用默认的套接字时,它会将一个新的连接与一个进程或线程绑定,这样等待处理消息的进程或线程就会阻塞而等待消息准备好,在高并发下这会导致进程/线程频繁的睡眠、唤醒,从而影响了CPU的效率。而多路复用则是解决这一问题的“利器”,它可以同时监控所有的连接,它虽然也会进入睡眠等待阶段,但是这一个进程/线程是为所有连接而等待,只 作者:u011438608 发表于 2014/11/17 21:40:22 原文链接 https://blog.csdn.net/u011438608/article/details/41216173 阅读:921 评论:1 查看评论 继续阅读 >>


宋润雨 14/11/17 21:40:22
我们都知道Linux下一个C程序的生成分为4个阶段 作者:u011438608 发表于 2014/07/23 14:14:35 原文链接 https://blog.csdn.net/u011438608/article/details/37910779 阅读:888 继续阅读 >>


宋润雨 14/07/23 14:14:35
最近听了小组一位同学的讲座, 作者:u011438608 发表于 2014/05/07 20:04:07 原文链接 https://blog.csdn.net/u011438608/article/details/24270549 阅读:834 继续阅读 >>


宋润雨 14/05/07 20:04:07
KMP是Knuth-Morris-Pratt的简称,KMP算法是模式匹配当中的经典算法,也就是某大神说的“以某些人的名字命名”的算法,它是由D.E.Knuth,J.H.Morris和V.R.Pratt共同提出的一个改进算法。和BF(Brute Force)算法相比,KMP算法的优点在于当主串中的i指针失配时,不需要回溯到上一次开始匹配的后一个位置,而是利用已经得到的next数组将模式串中的j指针移 作者:u011438608 发表于 2013/11/04 21:34:45 原文链接 https://blog.csdn.net/u011438608/article/details/13362221 阅读:886 继续阅读 >>


宋润雨 13/11/04 21:34:45
约瑟夫环问题是一道经典的数据结构的题目,问题描述为:编号为1,2,......,n的n个人按顺时针方向围坐在一张圆桌周围,每个人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始报数,报到m时停止报数,报到m的那个人出列,将他的密码作为新的m值,从他顺时针方向的下一个人开始重新从1报数,数到m的那个人又出列,如此下去,直至圆桌周围的人全部出列为止。 作者:u011438608 发表于 2013/10/15 20:12:06 原文链接 https://blog.csdn.net/u011438608/article/details/12714763 阅读:1536 继续阅读 >>


宋润雨 13/10/15 20:12:06
如何在linux下实现简单的FTP,这是我在这个暑假完成的最主要的学习任务。实现简单的服务器与客户端间的上传与下载功能,我们需要知道什么是c/s架构以及套接字。关于套接字socket,这篇博客里讲的很详细,链接奉上http://blog.csdn.net/sim_szm/article/details/9569607#comments 那么什么又是c/s架构呢?Client和Server 作者:u011438608 发表于 2013/09/03 20:37:51 原文链接 https://blog.csdn.net/u011438608/article/details/10200151 阅读:2716 评论:3 查看评论 继续阅读 >>


宋润雨 13/09/03 20:37:51
linux c上说:使用条件变量主要包括两个动作:一个等待使用资源的线程等待“条件变量被设置为真”;                     另一个线程在使用完资源后“设置条件为真”,这样就可以保证线程间的同步了。这样就存在一个关键问题,                     就是要保证条件变量能被正确的修改,条件变量要受到特殊的保护,实际使用中互斥锁扮演者这样一个保护者 作者:u011438608 发表于 2013/07/31 14:26:30 原文链接 https://blog.csdn.net/u011438608/article/details/9632577 阅读:791 继续阅读 >>


宋润雨 13/07/31 14:26:30