Linux
yqy_yangqingyu
无所谓!
展开
-
进程间通讯-共享存储
共享存储允许两个或更多进程共享一给定的存储区。 1、shmget函数 int shmget((key_t)key,size_t size,int flag);返回值:若成功返回共享存储ID,失败则返回-1。原创 2017-10-24 13:09:40 · 464 阅读 · 0 评论 -
高性能服务器编程-多进程编程与多线程编程
一、多进程编程二、多线程编程原创 2017-11-16 12:52:39 · 405 阅读 · 0 评论 -
高性能服务器编程-线程池
之前介绍了两种高性能服务器编程,今天介绍第三种-线程池。一、概念1、为什么要有池? 多线程如果存在客户端链接,创建一个函数线程,客户端关闭,释放线程,服务器大多时间消耗在创建线程,释放线程。这样对于业务的处理时间就会大大减少,所以引入了池来解决问题。2、池:初始时,申请比刚开始要使用的资源大的多的资源空间,接下来使用时,直接从池中获取资源。3、线程池:在服务器运行开始时,创建原创 2017-11-21 17:15:17 · 383 阅读 · 0 评论 -
网络编程(二)
在之前的博客中,介绍了传输层的一种重要协议-TCP协议。今天来介绍另外一种传输层协议-UDP UDP:无连接的、不可靠的、数据报服务。 首先看一下UDP报头: 从上图可以看出,UDP协议报头比TCP协议报头简单很多,没有TCP报头里面那么多的保证机制,所以UDP较比TCP简单。 UDP无连接:UDP协议中没有TCP协议里的三次握手和四次挥手的过程,双方没有严格的原创 2017-11-11 23:01:15 · 198 阅读 · 0 评论 -
进程间通讯-有名管道
大家都知道,在一个电脑上,同一时间同时运行着很多进程,各个进程之间单独运行,但是也有一些进程需要进行通信,那么进程间又如何进行通信呢?今天我就跟大家讲讲进程间是如何通过管道通信的。 进程间通信:是指多个进程之间数据相互转换。 进程间通讯的方式: 单机通讯:信号、管道(有名管道、无名管道)、信号量、消息队列、共享存储 多机通讯:套接字(socket) 管原创 2017-10-19 22:02:33 · 215 阅读 · 0 评论 -
线程
一、线程简介 一说起进程大家都很熟悉,进程是运行中的程序,更具体一点说,是一组有序指令、资源、数据的集合。那么线程是什么呢?下面就让我揭开线程的神秘面纱吧。 1、线程的定义 线程是进程内部的一条执行序列(又称执行流)。每个进程至少有一条执行序列,那就是main的执行体,main函数所代表的线程叫主线程。进程可以通过线程库创建若干条线程,这些新被创建的进程称之为函数线程。原创 2017-10-31 16:36:12 · 152 阅读 · 0 评论 -
线程同步
在之前的学习过程中,学习了进程同步。何谓同步? 同步:多进程或者多线程访问临界资源时,必须进行同步控制。原创 2017-10-31 23:33:15 · 153 阅读 · 0 评论 -
网络编程(一)
大家都知道在网络上有两种角色,一个是服务器,另外一个是客户端,那么什么是服务器,什么又是客户端呢?客户端和服务器如何进行通信的呢?接下来我就给大家简单讲一讲网络上通信的过程。 服务器(server):提供数据的为服务器 客户端(client):获取数据的为客户端 在之前的学习中,我们知道了网络的分层,有两种模型分别是OSI模型和TCP/IP模型,我们一般讲的是后者。TCP/IP模原创 2017-11-11 19:45:14 · 183 阅读 · 0 评论 -
创建进程-fork函数
最近,我在Linux中学到了一个神奇的函数,名为fork()函数,它的作用是创建进程。它的神奇之处在于调用fork()函数时,系统会创建一个与原来进程几乎完全相同的进程,大致的意思就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事 。就相当于是克隆了一个自己。 先来看一个例子 大家一定都很好奇结果是什么?那么结果到原创 2017-09-13 22:01:46 · 299 阅读 · 0 评论 -
进程间通讯-消息队列
一、什么是消息队列 消息队列是消息的链接表,存放在内核中并由消息队列标识符标识。消息队列向我们提供了一个进程向另一个进程发送数据块的方法。每个数据块都被认为含有一种类型,接受进程可以独立地接受含有不同类型的数据结构。二、在linux中使用消息队列 在linux中提供了一系列消息队列的函数接口来让我们方便地使用它来实现进程间的通信。它的用法与信号量机制相似 1、msgge原创 2017-10-20 13:03:28 · 257 阅读 · 0 评论 -
进程间通讯-无名管道
在上次的博客中,我给大家介绍了进程间通讯的方式-有名管道。管道分为有名管道和无名管道,那么此次我将给大家介绍一下另一种管道通讯-无名管道。 有名管道是可以应用于任何两个进程之间数据的单向传递,而无名管道是相对于有名管道的,无名管道在使用时产生,不使用后释放,并不会在系统上留下任何痕迹。 无名管道因其使用前没有任何的标示,所以它只能应用于父子进程之间。原因是:调用fork函数父进程产原创 2017-10-19 23:24:56 · 218 阅读 · 0 评论 -
高性能服务器编程-I/O复用
一、概念1、作用 将获取数据的操作延后到数据到达以后。数据到达以后,有数据的文件描述符上会有一个就绪事件,服务器只需要处理就绪事件就可以。这样单进程、单线程就可以同时监听多个文件描述符。下面讨论的I/O复用方式都是单进程的。2、linux下实现I/O复用的系统调用主要有:select、poll、epoll二、select1、作用 在一段时间内,采用轮询方式监听用户感兴趣的文原创 2017-11-24 20:53:14 · 269 阅读 · 0 评论