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

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

2015-03-31 18:08:57

阅读数:4266

评论数:0

TCP 的那些事儿(下)

这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇...

2015-02-22 22:51:56

阅读数:586

评论数:0

TCP 的那些事儿(上)

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

2015-02-22 22:47:50

阅读数:580

评论数:0

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

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

2014-11-17 21:40:22

阅读数:912

评论数:1

从程序到进程

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

2014-07-23 14:14:35

阅读数:873

评论数:0

netfilter & iptables 概述

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

2014-05-07 20:04:07

阅读数:814

评论数:0

KMP模式匹配算法

KMP是Knuth-Morris-Pratt的简称,KMP算法是模式匹配当中的经典算法,也就是某大神说的“以某些人的名字命名”的算法,它是由D.E.Knuth,J.H.Morris和V.R.Pratt共同提出的一个改进算法。和BF(Brute Force)算法相比,KMP算法的优点在于当主串中的i...

2013-11-04 21:34:45

阅读数:870

评论数:0

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

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

2013-10-15 20:12:06

阅读数:1506

评论数:0

linux下实现简单FTP

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

2013-09-03 20:37:51

阅读数:2551

评论数:3

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

linux c上说:使用条件变量主要包括两个动作:一个等待使用资源的线程等待“条件变量被设置为真”;                     另一个线程在使用完资源后“设置条件为真”,这样就可以保证线程间的同步了。这样就存在一个关键问题,                     就是要保证条件变量...

2013-07-31 14:26:30

阅读数:782

评论数:0

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

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

2013-07-29 15:25:00

阅读数:781

评论数:2

进程控制学习笔记

0.进程与程序(process & program)                      进程简单的讲就是运行中的程序,它是一个动态的实体,是程序的一次执行过程。进程与程序的区别在于进程是                      动态的,程序是静态的,进程是运行中的程序,程序是一些...

2013-07-27 16:53:23

阅读数:775

评论数:0

linux文件系统

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

2013-07-24 16:14:14

阅读数:1140

评论数:2

内存对齐

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

2013-07-18 16:40:01

阅读数:710

评论数:0

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