自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

草根学僧

意在记录学习过程

  • 博客(9)
  • 资源 (2)
  • 收藏
  • 关注

原创 I/O复用-select

I/O复用I/O复用的功能就是同时监听多个文件描述符,这样的话程序性能就能得到大大提升。通常,网络程序在下列情况下需要使用I/O复用技术:服务端程序要同时处理多个socket。服务端程序要同时处理用户输入和网络连接。TCP服务器要同时处理监听socket和连接socket。服务器要同时处理TCP请求和UPD请求。服务器要同时监听多个端口,或者处理多种服务。 与多进程和多线程技术相比,I/

2017-06-29 16:34:11 743

原创 代理服务器和NAT技术

一、代理服务器代理服务器是什么 代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和Local Area Network(局域网)。 代理,就是代而劳之的意思。代理服务器就是代理网络用户去取得网络信息,形象的说:它是网络信息的中转站,使得一个网络终端和另一

2017-06-27 19:50:37 1149

原创 最简单的生产者/消费者问题

生产者/消费者问题。可以从下图中看到,有一个容器用来存放数据,我们可以把这个容器当作”交易场所“或者”仓库“,生产者只关心仓库是否存满,不需要关心消费者的情况。消费者也一样,不需要关心具体生产者的情况,具体有多少个生产者,只需要知道仓库中是否有数据,双方甚至都不知道对方的存在。 生产者消费者,是在多线程同步的一个问题,两个固定大小缓冲区的线程,在实际运行是会发生问题,生产者是生成数据放入缓冲区

2017-06-22 16:18:56 623

原创 线程-线程同步

我们知道线程共享同一进程内的资源。如果每个线程使用的变量,其他线程都不会读取个修改,那么就不存在一致性问题。相同的,如果变量只读,多个线程同时读取该变量也不会存在一致性问题。但是,当一个线程可以修改变量,其他线程可以读取或修改变量,那么就要对这些线程进行同步,确保多个线程访问数据安全,不会访问到无效数据。 两个或多个线程同时修改同一变量时,也需要同步。跟前面信号讲的问题相同,考虑增量操作情况。增量

2017-06-18 19:10:46 1510

原创 线程-线程控制

知道了线程与进程关系,下来来学习线程控制 下来将要学习的线程库函数是由POSIX标准定义的,称为POSIX thread或者pthread。在Linux 上线程函数位于libpthread共享库中,因此在编译时要加上-lpthread选项。线程标识:prhread_self #include <pthread.h> pthread_t pthread_self(void);返回值:调用线

2017-06-15 18:28:32 909

原创 线程-线程基础

引言在前面讨论了进程,学习了Linux下进程概念、进程控制以及进程间通信。可以看到相关进程间可以存在一定的共享。 现在我们继续深入进程,了解如何使用多个线程在单进程环境中执行多个任务。进程中的所以线程都可以访问该进程的组成部分,如文件描述符和内存。 先来让我们来学习线程。为什么需要多线程?有些情况需要在一个进程中同时执行多个控制流程,这时候就需要线程了。 比如实现一个图形界面的下载软件,一方面

2017-06-15 14:50:45 736

原创 IPC-共享内存

进程间通信的三大主题纤消息队列、信号量、共享内存,还剩下最后一个模块。下来我们就来看看这最后一个主题:共享内存。共享内存共享内存允许两个或多个进程共享一个给定的存储区。因为共享内存数据不需要在进程和进程之间复制,所以共享内存是最快的一种IPC。 允许两个或多个进程共享一个存储区的意思是,同一块物理内存被映射到这些进程各自的进程地址空间。这样这些进程都可以看到其他进程对共享内存中数据的更新。 另外

2017-06-14 15:48:18 812

原创 IPC-信号量

- 信号量信号量与之前的PIPE、FIFO以及消息队列不同。它是一个计数器,用于为多个进程提供对共享数据对象的访问。信号量在负责数据操作的互斥、同步等功能。学习信号量之前首先先来学习几个基本概念:互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。

2017-06-13 18:05:52 915

原创 IPC-消息队列

什么是消息队列? 消息队列是消息的链接表,储存在内核中,由消息队列标识符标识。每个数据块都被认为有一个类型。接受者进程接收的数据块可以有不同的类型值。消息队列的特点 消息队列不同于管道,消息队列是基于数据块的,而管道是基于字节流的,并且消息队列读取不一定要先入先出,可以根据数据类型读取。还有就是因为管道是随进程的,进程结束管道生命周期也就结束,而对于消息队列来说,是随内核的,就算进程退出,不去

2017-06-09 21:39:05 721

Linux高性能服务器

Linux高性能服务器编程

2017-08-14

空空如也

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

TA关注的人

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