![](https://img-blog.csdnimg.cn/6cf24faa65c74683a37ed940581bce5e.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux学习
文章平均质量分 94
求知.
这个作者很懒,什么都没留下…
展开
-
【Linux高性能服务器编程】I/O复用的高级应用
服务器的功能是接收客户端数据,并将接收到的数据发送给每一个登录到该服务器上的客户端(数据发送者除外)。客户端程序使用 poll 同时监听用户输入和网络连接,并利用 splice 函数将用户输入的内容直接定向到网络连接上以发送之,从而实现数据的零拷贝,提高了程序的运行效率。另外,即使在同一个端口,如果服务器要同时处理该端口上的TCP和UDP请求,则也需要创建两个不同的。以上的两个服务器程序都只能监听一个端口,在实际应用中,有不少程序能够同时监听多个端口,比如超级服务。套接字,并将其设置为非阻塞的,然后调用。原创 2023-03-31 18:17:13 · 1039 阅读 · 5 评论 -
【Linux高性能服务器编程】信号处理方法之统一事件源
统一事件源,即将信号和其他事件一样进行处理。具体就是信号处理函数使用管道将信号传递给主循环,信号处理函数往管道的写端写入信号值,主循环则从管道的读端读出信号值,使用I/O复用系统调用来监听管道读端的可读事件,这样信号事件与其他文件描述符都可以通过epoll来监测,从而实现统一处理。原创 2023-03-30 17:40:38 · 819 阅读 · 0 评论 -
基于Reactor模式下的epoll多路复用服务器
虽然当前服务器已经实现了多路复用的功能了,但是处理连接请求和业务逻辑等所有的工作都是由当前的服务器来完成的。况且当前的业务逻辑只是进行简单的运算,处理的连接数量也很少,因此对应服务器而言并没有什么压力。如果需要处理更加复杂的业务逻辑或者是同时面临大量的连接,那么此时服务器就会显得有些吃力了。可再当前服务器的基础之上引入线程池,当读事件回调函数读取完相关的请求之后,就可以将响应的业务逻辑交给线程池进行处理,当线程池处理完毕之后,再将处理结果返回给服务器,由服务器组织响应给客户端程序。原创 2023-03-14 21:50:53 · 520 阅读 · 0 评论 -
高级IO以及IO多路复用(select、poll、epoll网络编程)
IO多路复用是一种高效的I/O处理机制,它允许在单个线程中同时监视和处理多个I/O操作,以提高程序的性能和可扩展性。在传统的阻塞I/O模型中,每个I/O操作都会阻塞整个进程,直到该操作完成。这就意味着如果应用程序需要处理多个并发I/O操作,就需要建立多个线程或者进程来处理它们,这样就会导致系统的开销过高,并且导致可扩展性下降。使用IO多路复用,应用程序可以将多个I/O操作注册到一个事件的循环中,然后使用一个线程来监视这些操作的状态。当其中任何一个操作就绪时,事件循环就会通知相应的应用程序,来执行相应原创 2023-03-09 21:09:14 · 1017 阅读 · 3 评论 -
【Linux学习】多线程
本文是博主学习了Linux中的多线程后进行的总结,通过阅读本文可以了解Linux中线程概念,理解线程与进程区别与联系。学会线程控制、线程创建、线程终止、线程等待,了解线程分离与线程安全概念,了解线程互斥与同步,学会使用互斥量、条件变量等。其他线程相关的内容将在后续呈现。原创 2022-12-18 21:48:02 · 515 阅读 · 0 评论 -
【Linux学习】进程信号
本文是博主对学习完Linux系统中的进程信号部分的知识点总结,在阅读完该文章之后,我们会对进程信号有更深层次的理解。学习完本文后我们可以掌握以下内容:Linux信号的基本概念、掌握信号产生的一般方式、理解信号递达和阻塞的概念和原理、掌握信号捕捉的一般方式、重新了解可重入函数的概念、了解竞态条件的情景和处理方式、了解SIGCHLD信号, 重新编写信号处理函数的一般处理机制。原创 2022-12-13 22:30:01 · 690 阅读 · 0 评论 -
【Linux学习】进程间通信的方式(匿名管道、命名管道、共享内存)
进程间通信(IPC,Interprocess communication)是一组编程接口,让程序员能够协调不同的进程,使之**能在一个操作系统里同时运行,并相互传递、交换信息。原创 2022-11-07 22:18:27 · 596 阅读 · 3 评论 -
【Linux学习】动态库和静态库
动态库和静态库原创 2022-11-02 21:17:22 · 1583 阅读 · 5 评论 -
【Linux学习】基础IO
该文章基于Linux环境用于介绍基础IO。本文涉及C语言文件IO相关操作、认识文件相关的系统调用接口、认识文件操作符,理解重定向、通过对比fd和FILE,理解系统调用与库函数之间的关系、理解文件系统中的inode相关概念、认识软硬连接以及认识动静态库,结合gcc制作动静态库等。原创 2022-10-29 18:26:37 · 609 阅读 · 9 评论 -
【Linux学习】进程控制
进程控制是进程管理中最基本的功能。它用于创建一个新进程,终止一个已完成的进程,或终止一个因出现某事件而使其无法运行下去的进程,还可负责进程运行中的状态转换。如当一个正在执行的进程因等待某事件而暂时不能继续执行时,将其转换为阻塞状态,而当该进程所期待的事件出现时,又将该进程转换为就绪状态等等。进程控制一般是由 OS的内核中的原语来实现的。原创 2022-10-05 20:20:21 · 261 阅读 · 0 评论 -
【Linux学习】环境变量
环境变量一般是指操作系统中指定运行环境的一些参数,即系统预定义的参数。它相当于一个指针,想要查看变量的值,需要加上“$”符号。环境变量是bash shell的特性,用来存储有关shell会话和工作环境的信息。允许在内存中存储数据,以便运行在shell上的程序和脚本访问。这些数据可以是用来识别用户、系统、Shell的特性以及任何其它需要存储的数据。......原创 2022-08-15 21:33:30 · 1461 阅读 · 4 评论 -
【Linux学习】进程概念
进程(process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。......原创 2022-08-15 13:36:06 · 1476 阅读 · 8 评论 -
【Linux学习】基础开发工具的使用
Windows 下有例如 Visual Studio、IDEA 这样的集编写代码、编译代码、调试代码、运行代码、代码关系维护以及各种各样的复杂功能于一身的开发工具,叫做集成开发环境 IDE。而Linux 下一般使用代码编辑工具 vi/vim,编译工具 gcc/g++,调试工具 gdb。(vim的使用)GDB 全称“GNU symbolic debugger”,从名称上不难看出,它诞生于 GNU 计划(同时诞生的还有 GCC、Emacs 等),是 Linux 下常用的程序调试器。...原创 2022-08-06 17:22:43 · 1917 阅读 · 11 评论 -
【Linux学习】权限
Linux权限原创 2022-07-31 11:46:15 · 237 阅读 · 6 评论 -
【Linux学习】基本指令
Linux基本指令原创 2022-07-25 11:22:06 · 182 阅读 · 5 评论 -
【Linux学习】vim编辑器的使用
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。.........原创 2022-07-07 22:25:13 · 11951 阅读 · 1 评论 -
【Linux学习】 软件包管理器 yum
Linux 软件包管理器 yum原创 2022-07-07 21:02:36 · 494 阅读 · 0 评论 -
【Linux学习】Linux简介以及环境搭建
Linux简介以及环境搭建原创 2022-07-06 12:17:00 · 600 阅读 · 0 评论