自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 两种高效的事件处理模式和并发模式

半同步/半异步模式:先解释一下同步和异步的区别,在并发模式中,这里的“同步"指的是程序完全按照代码的顺序执行,“异步”指的是程序的执行需要由系统事件来驱动,比如说信号、中断等。下图就清楚的解释了同步和异步操作的过程:这样看来,显然异步线程的执行效率高,但是它的编写相对复杂,难于调试,然而同步线程刚好相反,逻辑简单,但效率较差。半同步/半异步模式就结合了同步线程与异步线程的优点,它在

2015-03-31 18:08:57 5651

转载 TCP 的那些事儿(下)

这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资

2015-02-22 22:51:56 713

转载 TCP 的那些事儿(上)

上篇中,主要向你介绍TCP协议的定义和丢包时的重传机制。下篇中,重点介绍TCP的流迭、拥塞处理。首先,我们需要知道TCP在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Link层,在第二层上的数据,我们叫Frame,在第三层上的数据叫Packet,第四层的数据叫Segment。首先,我们需要知道,我们程序的数据

2015-02-22 22:47:50 743

原创 浅析I/O多路复用:select、poll、epoll

要想实现并发编程,最简单的模式就是1个进程/线程处理1个连接的全部生命周期,当我们使用默认的套接字时,它会将一个新的连接与一个进程或线程绑定,这样等待处理消息的进程或线程就会阻塞而等待消息准备好,在高并发下这会导致进程/线程频繁的睡眠、唤醒,从而影响了CPU的效率。而多路复用则是解决这一问题的“利器”,它可以同时监控所有的连接,它虽然也会进入睡眠等待阶段,但是这一个进程/线程是为所有连接而等待,只

2014-11-17 21:40:22 1098 1

原创 从程序到进程

我们都知道Linux下一个C程序的生成分为4个阶段

2014-07-23 14:14:35 1145

原创 netfilter & iptables 概述

最近听了小组一位同学的讲座,

2014-05-07 20:04:07 1088

原创 KMP模式匹配算法

KMP是Knuth-Morris-Pratt的简称,KMP算法是模式匹配当中的经典算法,也就是某大神说的“以某些人的名字命名”的算法,它是由D.E.Knuth,J.H.Morris和V.R.Pratt共同提出的一个改进算法。和BF(Brute Force)算法相比,KMP算法的优点在于当主串中的i指针失配时,不需要回溯到上一次开始匹配的后一个位置,而是利用已经得到的next数组将模式串中的j指针移

2013-11-04 21:34:45 1198

原创 约瑟夫环问题 (c / c++)

约瑟夫环问题是一道经典的数据结构的题目,问题描述为:编号为1,2,......,n的n个人按顺时针方向围坐在一张圆桌周围,每个人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始报数,报到m时停止报数,报到m的那个人出列,将他的密码作为新的m值,从他顺时针方向的下一个人开始重新从1报数,数到m的那个人又出列,如此下去,直至圆桌周围的人全部出列为止。

2013-10-15 20:12:06 6497

原创 linux下实现简单FTP

如何在linux下实现简单的FTP,这是我在这个暑假完成的最主要的学习任务。实现简单的服务器与客户端间的上传与下载功能,我们需要知道什么是c/s架构以及套接字。关于套接字socket,这篇博客里讲的很详细,链接奉上http://blog.csdn.net/sim_szm/article/details/9569607#comments那么什么又是c/s架构呢?Client和Server

2013-09-03 20:37:51 4774 3

原创 线程控制--互斥锁与条件变量

linux c上说:使用条件变量主要包括两个动作:一个等待使用资源的线程等待“条件变量被设置为真”;                    另一个线程在使用完资源后“设置条件为真”,这样就可以保证线程间的同步了。这样就存在一个关键问题,                    就是要保证条件变量能被正确的修改,条件变量要受到特殊的保护,实际使用中互斥锁扮演者这样一个保护者

2013-07-31 14:26:30 953

原创 进程控制学习笔记(续)-- 关于fork的一道面试题

在上一篇博文中,我大概的总结了一下进程控制的操作,但今天听了女神学姐的讲座,又发现了一个有趣的问题。                    上代码:               int main(int argc, char *argv[]) { int i; for(i=0; i<2; i++) {

2013-07-29 15:25:00 1001 2

原创 进程控制学习笔记

0.进程与程序(process & program)                     进程简单的讲就是运行中的程序,它是一个动态的实体,是程序的一次执行过程。进程与程序的区别在于进程是                     动态的,程序是静态的,进程是运行中的程序,程序是一些保存在硬盘上的可执行的代码。所以很多人也说,进                     程是活的,程序

2013-07-27 16:53:23 972

原创 linux文件系统

这两天在看《linux c 编程实战》的文件操作,学会了一些函数如open,read,lseek,stat等

2013-07-24 16:14:14 1497 2

原创 内存对齐

想必每位学习计算机的同学都应该知道,在C语言中有这么一个知识点--内存对齐,而面试题中关于这个知识点的题目也屡见不鲜,所以今天我就来浅显的谈一谈我对内存对齐的理解。          为什么要内存对齐0.平台移植:各个硬件平台对对存储空间的处理有很大的不同,比如有些架构的CPU在访问一个没有进行对                        齐的变量的时候会发生错误,这就

2013-07-18 16:40:01 857

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除