Linux
文章平均质量分 84
binary~
所有的努力最终都会绕个大圈回报给你。
展开
-
C语言线程池
线程池什么是线程池为什么要使用线程池线程池的工作流程图任务队列线程池的创建线程池的初始化工作者添加任务线程池的销毁完整代码threadpool.hpthreadpool.c总结什么是线程池线程池就是一个容纳多个线程的容器,对于一线线程我们可以多次对此线程进行重复使用,从而省去频繁创建线程对象的操作。为什么要使用线程池频繁的进行进程的创建与销毁将带来很多开销。不但如此,进程间频繁的切换也将减低 CPU 的利用率。 如果能复用之前创建的进程,而不是为每个并发任务创建一个进程,能有效降低进程创建与销毁的开原创 2022-05-24 21:23:53 · 4087 阅读 · 5 评论 -
线程学习笔记总结
进程:有独立的进程地址空间,有独立的PCB线程:没有独立的地址空间,是共享的,有独立的PCBLinux下,线程是最小的执行单位,进程是最小的分配资源的单位LWP: 轻量级进程也就是线程命令 ps -Lf pid 可以查看该进程的线程号线程创建 int pthread_create(pthread_t *thread, //传出参数,表示创建的线程的线程id const pthread_attr_t *原创 2022-05-09 19:41:22 · 468 阅读 · 3 评论 -
线程同步的四种方法
线程同步线程同步,指的是一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时其它线程为保证数据一致性,不能调用该功能。多个控制流,共同操作一个共享资源的情况,都需要同步数据混乱原因1.资源共享(独享资源不会)2.调度随机(意味着数据访问会出现竞争)3.线程间缺乏必要同步机制restrict关键字用来限定指针变量,被该关键字限定的指针变量所指向的内存操作,必须由本指针完成互斥锁pthread_mutex_t lock;//创建锁pthread_mutex_init();//原创 2022-05-03 17:33:36 · 2466 阅读 · 5 评论 -
生产者消费者问题
文章目录问题概述单生产者单消费者队列思路概述代码多生产者多消费者队列(这里以3个生产者3个消费者为例)思路概述代码问题概述生产者消费者共享缓冲区,生产者向缓冲区中放数据,消费者从缓冲取中取数据,当缓冲区中被放满时,生产者线程就必须进入挂起状态,直到消费者从缓冲中取走数据时,生产者才能继续向缓冲区中存放数据,同样当缓冲取中没有数据时,消费者线程就必须进入挂起休眠状态,直到生产者向缓冲区中放入数据时,消费者才能被唤醒继续从缓冲区中取走数据。单生产者单消费者队列思路概述使用队列的方式来存储产品,创建原创 2022-05-02 22:55:44 · 615 阅读 · 3 评论 -
信号深入学习
目录信号机制信号特质信号产生以及处理方式信号处理方式阻塞信号集和未决信号集阻塞信号集(信号屏蔽字)未决信号集信号查看信号机制A给B发送信号,B收到信号之前执行自己的代码,收到信号后,不管执行到程序的什么位置,都要暂停运行,先去处理信号,处理完毕后再继续执行程序。与硬件中断类似——异步模式。但信号是软件层面上实现中断。信号特质由于信号是通过软件方法实现,其实现手段导致信号有很强的的延时性。但对于用户来说,这个延迟非常短,不易察觉每个进程收到的所有信号,都是由内核负责发送的,内核处理。信号共原创 2022-04-21 01:02:43 · 492 阅读 · 2 评论 -
Linux命令myshell的自我实现
myshell打造一个绝无伦比的 xxx-super-shell (xxx 是你的名字),它能实现下面这些功能:要求:Example知识要点参考资料代码实现打造一个绝无伦比的 xxx-super-shell (xxx 是你的名字),它能实现下面这些功能:实现 管道 (也就是 |)实现 输入输出重定向(也就是 < > >>)实现 后台运行(也就是 & )实现 cd,要求支持能切换到绝对路径,相对路径和支持 cd -屏蔽一些信号(如 ctrl + c 不能终止)界原创 2022-04-19 16:43:47 · 714 阅读 · 3 评论 -
inode详解
什么时inode?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件原创 2022-03-28 13:12:47 · 9973 阅读 · 5 评论 -
Linux命令pwd的自我实现
mypwd参考资料pwd概述pwd的工作原理所要用到的函数分析(运行的步骤逻辑)代码实现效果展示参考资料man手册Unix-Linux编程实践教程pwd概述命令pwd用来显示到达当前目录的路径。例如:pwd的工作原理在每个目录文件下都会有".“和” . . “两个目录,”.“指的是当前目录,”. .“指的是上一级目录。我们可以通过”.“获得当前目录的inode-id,然后再进入该目录的上一级目录,通过刚刚获得的inode-id去匹配当前目录中文件的inode-id从而找到刚刚目录的目录名原创 2022-03-26 17:02:21 · 13814 阅读 · 1 评论 -
Shell脚本
Shellshell概述Shell脚本入门Shell脚本1:hello worldShell脚本2:多命令处理Shell的常用系统变量和自定义变量shell概述shell时一个命令解释器,它接收应用程序,用户命令,然后调用操作系统内核。shell还是一个功能强大的编程语言,易编写,易调试,灵活性强。Linux提供的Shell解析器可以通过下面命令查看cat /etc/shellsbash和sh的关系:sh是bash的软连接查看系统默认的解析器可以用下面的命令echo $SHELL原创 2022-03-25 17:23:53 · 479 阅读 · 1 评论