上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 21 下一页
摘要: 简单动态字符串 Redis中的字符串并不是传统的C语言字符串(即字符数组,以下简称C字符串),而是自己构建了一种简单动态字符串(simple dynamic string,SDS),并将SDS作为Redis的默认字符串表示。在Redis中,C字符串一般只用在无需对字符串值进行修改的地方,比如Redi 阅读全文
posted @ 2018-09-29 08:25 北洛 阅读(3144) 评论(0) 推荐(0) 编辑
摘要: 线程存在的问题和临界区 上一章TCP/IP网络编程之多线程服务端的实现(一)的thread4.c中,我们发现多线程对同一变量进行加减,最后的结果居然不是我们预料之内的。其实,如果多执行几次程序,会发现每次程序计算的结果都不一样。那么,造成这样的原因是什么呢? 现在,假设我们一个全局变量sum的值为9 阅读全文
posted @ 2018-09-27 21:30 北洛 阅读(1405) 评论(0) 推荐(0) 编辑
摘要: 为什么引入线程 为了实现服务端并发处理客户端请求,我们介绍了多进程模型、select和epoll,这三种办法各有优缺点。创建(复制)进程的工作本身会给操作系统带来相当沉重的负担。而且,每个进程有独立的内存空间,所以进程间通信的实现难度也会随之提高。且进程的切换同样也是不菲的开销。什么是进程切换?我们 阅读全文
posted @ 2018-09-26 21:36 北洛 阅读(8342) 评论(0) 推荐(1) 编辑
摘要: 分离I/O流 “分离I/O流”是一种常用表达,有I/O工具可以区分二者。无论使用何种办法,都可以认为分离I/O流。我们之前通过两种方法分离I/O流,第一种是TCP/IP网络编程之进程间通信中的“TCP I/O过程(Routine)分离”,这种方法通过调用fork函数复制出一个文件描述符,以区分输入和 阅读全文
posted @ 2018-09-25 20:33 北洛 阅读(642) 评论(0) 推荐(0) 编辑
摘要: 基于epoll的回声服务端 在TCP/IP网络编程之优于select的epoll(一)这一章中,我们介绍了epoll的相关函数,接下来给出基于epoll的回声服务端示例。 echo_epollserv.c 之前解释过关键代码,而且程序结构与select方式没有区别,故省略代码说明。 条件触发和边缘触 阅读全文
posted @ 2018-09-25 20:33 北洛 阅读(1016) 评论(0) 推荐(0) 编辑
摘要: epoll的理解及应用 select复用方法由来已久,因此,利用该技术后,无论如何优化程序性能也无法同时接入上百个客户端。这种select方式并不适合以web服务端开发为主流的现代开发环境,所以要学习Linux平台下的epoll。我们先来看TCP/IP网络编程之I/O复用的echo_selectse 阅读全文
posted @ 2018-09-25 20:33 北洛 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 进程间通信基本概念 进程间通信意味着两个不同进程间可以交换数据,为了完成这一点,操作系统中应提供两个进程可以同时访问的内存空间。但我们知道,进程具有完全独立的内存结构,就连通过fork函数创建的子进程也不会和父进程共享内存,因此,进程间通信只能通过其他特殊方法完成 基于管道实现进程间通信 图1-1表 阅读全文
posted @ 2018-09-25 20:32 北洛 阅读(5231) 评论(0) 推荐(0) 编辑
摘要: 基于I/O复用的服务端 在前面章节的学习中,我们看到了当有新的客户端请求时,服务端进程会创建一个子进程,用于处理和客户端的连接和处理客户端的请求。这是一种并发处理客户端请求的方案,但并不是一个很好的方案,因为创建进程时需要付出很大的代价,需要大量的运算和内存空间,由于每个进程都具有独立的内存空间,所 阅读全文
posted @ 2018-09-25 20:32 北洛 阅读(1253) 评论(0) 推荐(0) 编辑
摘要: 多播 多播方式的数据传输是基于UDP完成的,因此,与UDP服务端/客户端的实现非常接近。区别在于,UDP数据传输以单一目标进行,而多播数据同时传递到加入(注册)特定组的大量主机。换言之,采用多播方式时,可以同时向多个主机传递数据 多播的数据传输方式及流量方面的优点: 多播服务端针对特定多播组,只发送 阅读全文
posted @ 2018-09-25 20:32 北洛 阅读(779) 评论(0) 推荐(0) 编辑
摘要: send和recv函数 在之前的学习中,我们在不少示例中用到send和recv这两个函数,但一直没有详细解释过着两个函数中每个参数的含义。本节将介绍Linux平台下的send&recv函数 sockfd:表示与数据传输对象的连接的套接字文件描述符 buf:保存待传输数据的缓冲地址值 nbytes:待 阅读全文
posted @ 2018-09-25 20:32 北洛 阅读(1092) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 21 下一页