![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 94
Linux学习内容
DL862
这个作者很懒,什么都没留下…
展开
-
【网络】网络基础&&套接字编程详解
目录网络初识1、网络协议初识2、网络协议的分层:OSI分层模型--->网络理论模型:TCP/IOP五层模型--->工业中采用的网络模型为什么要有网络分层?3、网络数据的封装与复用4、IP地址和MAC的地址 IP地址 MAC地址套接字编程 1、预备知识1、认识端口--->port2、网络数据的五元组信息 3、网络字节序4、主机字节序与网络字节序的互相转化 5、TCP协议与UDP协议的特性和区别 2、UDP_socket编程1、流程2、接口:3、代码实现(注意其中的一些细节问题) 3、TCP_socket编程原创 2022-06-26 17:09:13 · 1317 阅读 · 0 评论 -
【Linux】线程池、单例模式、乐观锁与悲观锁
线程池:什么是线程池:一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理内核、内存、网络sockets等的数量。应用场景:需要大量的线程来完成任务,且完成任务的时间比较短。web服务器完成网页请求这样的任务,使用线程池技术非常合适。因为单个任务小,而任务数量巨..原创 2022-05-21 13:14:50 · 322 阅读 · 0 评论 -
【Linux】生产者与消费者模型、信号量、死锁
死锁死锁的产生场景1、线程加锁之后,没有释放互斥锁就退出了因此,要在线程所有可能退出的地方都释放互斥锁。2、两种线程分别拿着一把锁,还想要请求对方的锁死锁的gdb分析产生了死锁,要分析其产生的原因,可以通过gdb来调试该程序,进而判断思索地原因。下面以上述情况2进行调试。1、通过调试可执行程序来分析1、b + 行号 打断点2、使用thread apply all bt命令将所有线程的调用堆栈展现出来3、使用p + 互斥锁变量可以查看...原创 2022-05-18 16:07:25 · 1155 阅读 · 0 评论 -
【Linux】线程安全(看这一篇就够了)
线程安全概念:线程安全:多个线程并发同一段代码时,不会出现不同的结果。常见对全局变量或者静态变量进行操作,并且没有锁保护的情况下,会出现该问题。举例:有一个单核CPU,有两个线程A和B,有一个全局变量n初始值为10。两个线程都要执行n++这个代码,由于两个线程是抢占式执行的,那么可能会有以下情况出现:假设A先拿到CPU资源,将n的值也就是10读到了寄存器当中,此时由于某些原因(CPU调度),线程A被剥离CPU;此时线程A的PCB中的上下文信息保存了寄存器当中的信息,程序计数器记原创 2022-05-04 14:15:50 · 1582 阅读 · 0 评论 -
【Linux】线程概念&&线程控制
线程概念什么是线程:在程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线城是“一个进程内部的控制序列”。一切进程至少有一个执行线程。线程在进程内部运行,本质是在进程地址空间运行。在Linux系统中,在CPU眼中,看到的PCB都要比传统的进程更加轻量化。透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理的分配给每个执行流,就形成了线程执行流。①Linux操作系统中没有线程的概念,我们所说的创建线程,本质上是在Linux操作系统中创建轻量级进程,因.原创 2022-04-16 20:28:05 · 419 阅读 · 0 评论 -
【Linux】进程信号
信号的概念信号只是告诉我们有这样一个信号,但是具体这个信号如何处理,什么时候处理是由进程决定的,所以是软中断。种类可以通过kill -l命令来查看所有信号。注意:总共有62个信号,没有32和33号信号。其中1-31号信号被称之为非实时信号,也叫非可靠信号,它在使用的过程中信号可能会丢失。34-64号信号被称为实时信号,也叫可靠信号,它在使用过程中信号不会丢失。信号的产生硬件产生方式1、Ctrl + c产生的是2号信号SIGINT,是一个中断信号。2、Ctrl +原创 2022-03-30 14:30:56 · 1838 阅读 · 0 评论 -
【Linux】进程间通信(匿名管道、命名管道、共享内存、消息队列)
为什么需要进程间通信每一个进程的数据都是存储在物理内存当中,进程通过各自的进程虚拟地址空间进行访问,访问的时候通过各自的页表的映射关系,访问物理内存。从进程的角度看,每个进程都认为自己拥有4G(32位操作系统)的空间。至于物理内存当中如何存储,页表如何映射,进程是不清楚的。这也造就了进程的独立性。好处:让每个进程运行的时候都是独立运行的,数据不会乱窜。坏处:如果两个数据之间需要数据交换,由于进程的独立性,就没有那么方便了。常见的进程间通信方式:管道、共享内存、消息队列、信号量、信号、网络原创 2022-03-23 19:19:47 · 1582 阅读 · 0 评论 -
【Linux】基础IO(文件接口、文件描述符、重定向、库、软硬链接)
C文件接口1、fopenpath:带有路径的文件名称,不带路径,则默认当前路径mode:打开文件的方式返回值:成功返回文件流指针FILE*,失败返回NULLmode打开方式的方式:'r':只读方式打开,将文件指针指向文件头,如果文件不存在,则返回空。'r+':读写方式打开,将文件指针指向文件头,如果文件不存在,则返回空。'w':写入方式打开,将文件指针指向文件头并将文件内容清空。如果文件不存在则创建。'w+':读写方式打开,将文件指针指向文件头并将文件内容清空.原创 2022-03-09 15:47:55 · 1157 阅读 · 3 评论 -
【Linux】进程控制
目录1、进程创建1.1、fork函数内部完成的功能1.2、用户空间&内核空间1.3、写时拷贝2、进程终止2.1、进程终止的场景2.2正常终止2.3、异常终止2.4、exit和_exit函数的区别1、执行用户自定义的清理函数2、冲刷缓冲区,关闭流等2.5、缓冲区冲刷缓冲区的方式缓冲方式3、进程等待3.1:为什么要进程等待3,2、进程等待的方法wait方法:waitpid函数:参数status的含义:1、...原创 2022-03-04 20:43:59 · 495 阅读 · 0 评论 -
【Linux】进程概念大全
目录1、操作系统的描述1.1、操作系统是什么?1.2、操作系统在做什么?1.3、操作系统使怎样完成这些事的?1.4、系统调用 & 库函数2、进程相关概念2.1 程序 & 进程2.2 管理进程2.3 描述(PCB)2.3.1、进程号(PID)2.3.2、进程状态:就绪/运行/阻塞(从cpu的角度理解)2.3.3、并发&并行2.3.4:细分的进程状态(重点)2.3.5、程序计数器2.3.6、上下文信息2.3.6、内存指针.原创 2022-03-02 15:36:23 · 871 阅读 · 0 评论