
Linux
不楸
现在的自己对的起以后
展开
-
Linux Makefile
原创 2018-06-16 23:38:32 · 146 阅读 · 0 评论 -
Liunx下C++简单线程池实现
线程池 线程池就是预先创建好线程等待任务到来,然后接受任务去执行。在一定程度上减少了临时开辟线程的时间,提高程序运行效率。线程池一般需要一个管理线程,任务队列,空闲线程队列,工作线程队列。管理线程:一般用于监视线程池的工作状态,当任务过多时就会增加线程参加工作,当任务比较少的时候销毁一些空闲线程减少资源销毁。任务队列:用于存放任务;空闲线程队列:存放没有任务执行的线...原创 2019-02-20 22:47:33 · 220 阅读 · 0 评论 -
Liunx——Epoll机制
Epoll是Linux内核改进的Poll用用于处理大批量文件描述符,是Linux下多路复用I/O接口Select和Poll的增强版,它显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。在当前的很多流行的高并发服务器中都有很高的使用率,例如Nginx、Apache等服务器,都支持Linux的Epoll机制。Epoll函数接口Epoll不是一种通用的事件驱动机制,只是运用事...原创 2019-01-20 20:39:37 · 267 阅读 · 1 评论 -
多线程篇——初始Linux线程
线程模型线程是程序完成一个独立任务的完整执行序列,即一个可调度的实体。根据运行环境和调度者的身份,线程可分为内核线程和用户线程。内核线程运行在内核空间上由内核调度,用户线程运行在用户空间上由线程库来调度。一个进程可以有M个内核线程、N个用户线程(M<=N)。并且在一个系统中所有进程M:N一定,按这个比值线程实现方式可分为三种模式:完全在用户空间实现、完全由内核调度和双层调度。...原创 2018-12-10 12:39:06 · 206 阅读 · 0 评论 -
Nginx服务器基本框架分析
Nginx基本框架Nginx是近年来非常受欢迎的一款轻量级web服务器。Nginx相对于Apache服务器来说采用高度模块化的设计方式使得Nginx拥有高扩展性。Nginx模块创建共享内存;(2)银色贡献内存;原理:相关函数shmget():创建一块共享内存或者获取一块已经存在的共享内存;#include<sys/types.h...原创 2018-12-03 10:20:19 · 357 阅读 · 0 评论 -
Linux进程间通信——消息队列
消息队列 顾名思义,消息队列就是一些消息的列表。用户可以在消息队列中添加消息或者读消息等。消息队列的实现包括创建或打开消息队列,添加消息,读取消息,和控制消息队列这4种操作。消息队列是内核地址空间中的内部链表,通过Linux内核在个进程间传递消息,消息顺序地发送到消息队列中,并且以几种不同的方式从队列中获取,每一个消息队列可以用IPC标识符唯一的进行标识,内内核中的消息队列是通过IPC的标识...原创 2018-11-28 19:23:05 · 241 阅读 · 0 评论 -
Linux进程间通信——信号量
信号量概述在多任务操作系统环境下,多个进程/线程会同时进行。多任务可能为了完成同一个目标会相互协作,这样就形成了任务之间的同步关系。同样,不同任务之间为了争夺有限的系统资源(硬件或软件资源)会进入竞争状态。任务间的互斥与同步关系存在的根源在于临界资源。临界资源:是指在同一时刻只允许有限个(通常只有一个)操作的资源。访问临界资源的代码成为临界区。信号量是用来解决进程/线程之间同步与互斥问...原创 2018-11-21 13:52:05 · 539 阅读 · 0 评论 -
Linux进程间通信——信号通信
信号概述 信号是在软件层次上怼中断机制的一种模拟。原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的:一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号什么时候到达。进程之间可以互相通过信号相互交流。内核进程也可以利用它来通知用户空间进程发生了那些系统事件。它可以在任何时候发给某一进程,而无需知道该进程的状态。如果该进程当前并未处于执行状态,则...原创 2018-11-14 17:25:38 · 826 阅读 · 0 评论 -
Linux进程间通信——无名/有名管道
管道简介:管道是Linux中进程间通信的一种方式,它把一个进程的输出直接连接另一个管道的输入。Linux的管道包括两种:无名管道和有名管道。 1.无名管道特点:只能用于具有亲缘关系的进程间通信(及父子或者兄弟进程)。 是一种单工的通信模式,具有固定的读端和写端。 管道也可以看成一种特殊的文件进行操作,对于它的读写也可以使用普通的read(),write()等函数。但是它不属...原创 2018-11-05 18:00:16 · 401 阅读 · 0 评论 -
Linux 文件目录信息打印stat+dirent
stat的基本使用:所需头文件: #include<sys/types.h>,#include<sys/stat.h>,#include<unistd.h>函数原型: int stat(const char *path, struct stat *buf); int fstat(int fd, struct stat *buf...原创 2018-10-07 18:02:55 · 1309 阅读 · 0 评论 -
socket 第一篇初级详解
socket概述socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –&amp;amp;gt; 读写write/read –&amp;amp;gt; 关闭close”模式来操作。Socket就是该模式的一个实现, socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭). 我理解socket就相当于一个接口用来传输数...原创 2018-06-09 23:03:53 · 441 阅读 · 0 评论 -
进程间通信-哲学家进餐问题(进程)
描述一张圆桌上坐着5名哲学家,每两个哲学家之间的桌上摆一根筷子,桌子的中间是一碗米饭,如图2-10所示。哲学家们倾注毕生精力用于思考和进餐,哲学家在思考时,并不影响他人。只有当哲学家饥饿的时候,才试图拿起左、 右两根筷子(一根一根地拿起)。如果筷子已在他人手上,则需等待。饥饿的哲学家只有同时拿到了两根筷子才可以开始进餐,当进餐完毕后,放下筷子继续思考。分析简单解法相邻的哲学家是互斥关系,...原创 2019-04-15 11:01:31 · 916 阅读 · 0 评论