
Linux
文章平均质量分 92
programing菜鸟
喜欢C/C++, Linux,数据结构的朋友们可以关注我,不会让你失望的。
展开
-
多线程收尾
目录其他关于锁的概念1,单例模式2,智能指针,STL3,其他锁读者写者问题读者写者的321原则常用接口基于读写锁的三种实现方式自旋锁自旋锁的接口trylock其他关于锁的概念1,单例模式单例模式。scott meyer-单例模式和双检查2,智能指针,STL智能指针STL中的容器、只能指针都不是线程安全的。原因是, STL 的设计初衷是将性能挖掘到极致, 而一旦涉及到加锁保证线程安全, 会对性能造成巨大的影响.而且对于不同的容器, 加锁方式的不同, 性能可能也不同(例如hash表的锁表原创 2021-10-07 02:59:40 · 174 阅读 · 0 评论 -
多线程-线程池
目录线程池线程池的实现线程池想一想我们的日常生活,你去饭店吃饭,你点了一道酸辣土豆丝。老板说:我现在去菜市场买点土豆丝,买点葱花,买点调味品。。。这不是扯淡。饭店肯定有一个小仓库,存储了从菜市场买来的原料,等到你点的时候老板直接从仓库拿就好了,不用再去菜市场。而我们计算机也有类似这种小仓库的东西,这就是池子。计算机称之为池化技术,线程池就是其中的一种。如果每次接受到任务都需要再次创建线程,那么就会让用户多等待很多时间。而且每次线程都需要销毁,浪费系统时间。我们利用线程池,提前创建原创 2021-10-07 00:59:10 · 148 阅读 · 0 评论 -
POSIX信号量 &&循环队列
目录什么是信号量什么是信号量信号量就是一个计数器而已。信号量支持PV操作,P操作就是对–信号量,V操作就是++信号量。我们已经说过环境变量的缺点,无法实现更细致的同步。我们希望有多个线程可以同时访问临界资源,形成并行,而信号量就是来解决这个问题的。我们将临界资源划分成多份,然后用信号量记录资源的数量。信号量保证的访问临界资源的线程可以很多,但是要小于记录的数量。所以每有一个线程进入临界资源,那么相对应的资源就少了一份,所以信号量就执行–操作;每有一个线程完成任务,归还资源,那么信号量就执行V操作,原创 2021-10-06 11:02:34 · 189 阅读 · 0 评论 -
基于阻塞队列的生产者消费者模型
目录生产者消费者模型生活中的栗子优点代码的栗子生产者消费者模型生活中的栗子我们的日常生活中常见到生产者消费者模型。比如超市。超市有很多的货架,供货商将生产好的商品放到货架上,消费者去超市的货架上拿走商品,完成交易。在这个过程中我们发现了三种关系,生产者和生产者之间是互斥关系,一个货架只能有一个供货商的商品。消费者和消费者之间是互斥关系,因为超市资源有限,你拿走了,我就没法拿。生产者和消费者之间是同步关系,如果货架满了,供应商就不再供应,通知消费者来消费。如果货架空了,消费者就不再消费,通知生产者来原创 2021-10-03 11:56:10 · 186 阅读 · 0 评论 -
linux-线程控制 && 同步和互斥
线程等待线程分为主线程和新线程。只有主线程退出才标志着进程结束。而主线程退出会强制该进程的所有线程退出。线程退出也需要像进程退出一样被等待,因为主线程需要知道新线程的任务完成的怎么样。而且不等待就可能会出现内存泄漏,所以需要回收资源。等待线程的函数叫做pthread_join。第一个参数就是线程的tid。第二个参数是为了获取线程执行函数的返回值void*。因此需要二级指针。pthread_join函数只需要获取新线程退出的退出码,不需要获取信号编号。因为一旦某个线原创 2021-10-01 20:36:38 · 410 阅读 · 0 评论 -
linux-线程概念
文章目录线程概念线程概念小总结线程的优点线程的缺点线程异常线程用途Linux进程 && 线程进程的创建线程概念线程(thread)就是进程里面的一个执行流,更准确的“线程是一个进程内部的控制序列”。当创建一个线程的时候,系统中会拷贝一个task_struct,这个task_struct是按照原进程的模样拷贝的。然后在该进程的地址空间内,将数据段和代码段划分出一块区域给新的线程使用。也就是说新线程和主线程公用进程地址空间,于是也公用页表等信息。在linux中没有用来描述线程的结原创 2021-09-28 06:44:12 · 291 阅读 · 0 评论 -
linux-信号
文章目录在一个bash中,一次只允许有一个前台进程。原创 2021-09-19 17:17:32 · 368 阅读 · 0 评论 -
linux-进程间通信
文章目录为什么你的0,1,2号文件默认打开?因为bash打开了,后面的进程继承了它的file_struct,所以只要一个进程默认打开,其他的子进程都会默认打开。为什么file结构体不会为子进程创建?因为file结构体属于文件,不属于进程。只是和进程关联起来罢了。...原创 2021-09-17 00:09:02 · 571 阅读 · 0 评论 -
linux-动静态库
文章目录什么是动静态库?动静态库的区别命名区别生成静态库什么是动静态库?我们可能常听别人这样说过,拿别人的代码过来用一下。 那么我们怎么样拿到别人的代码呢?直接源码拷贝吗?或者说,如果我们使用别人的代码,需要别人提供什么呢?我们知道C/C++语言生成可执行程序有几个阶段,预处理,编译,汇编和链接。在汇编结束后会生成一个.o(linux环境下)文件,我们只需要给别人提供代码对应的.o文件和头文件,别人就可以使用我们的代码。但是如果有多个.o文件,一个一个给别人又很麻烦,所以就干脆把所有的.o文件打包起原创 2021-09-13 18:51:02 · 145 阅读 · 0 评论 -
linux-inode
文章目录文件系统的理解磁盘group的各个部分分析文件的存储过程软硬链接文件系统的理解当我们创建文件时,如果创建一个空文件,那么还是有相应的文件信息给它。这说明文件包括内容+属性。我们文件的属性信息是放在inode结构体中,每一个文件对应一个inode。文件的内容放在block中,每一个文件可以对应多个block,如果这个文件比较大的话。而系统中的文件一定相当多,那么就需要管理。怎么管理呢?先描述再组织。而inode就是描述信息。我们的文件系统就是对磁盘的整体认知,其中包括了磁盘的使用情况和如何对磁原创 2021-09-11 19:33:29 · 214 阅读 · 0 评论 -
linux-基础IO
文章目录原创 2021-09-11 17:01:13 · 151 阅读 · 0 评论 -
linux-进程控制
文章目录进程创建进程等待进程替换进程终止进程创建进程等待进程替换进程终止原创 2021-09-08 23:42:35 · 545 阅读 · 0 评论 -
进程地址空间
文章目录前言地址空间进程地址空间不是物理内存 + 矛盾的栗子为什么需要进程地址空间?进程地址空间如何映射到物理内存?页表对内存的权限管理管理进程地址空间其他的进程信息总结前言你可能在C语言的学习中看过C程序的地址空间,但是今天以后它应该叫做进程地址空间。1,你最熟悉的应该是栈和堆,当时你可能只了解了下面的部分,实际上上面的部分是内核区域。2,还有一点要注意的是,代码段并不是从0000。。。开始的,虽然图上是这样画的。3,这张图清晰的表明了C程序运行的数据分配。你可能被告知上面的是内存的划分,但是原创 2021-09-02 20:48:48 · 784 阅读 · 0 评论 -
linux-进程概念(3)
文章目录前言前言原创 2021-09-02 14:06:34 · 454 阅读 · 0 评论 -
linux-进程概念(2)
文章目录前言前言删除当前目录下的后缀为.c的所有文件:# 1rm -rf *.c # *表示任意字符# 2find . -maxdepth 1 -name *.c | xargs rm# 因为文件系统是树状结构,所以maxdepth就是最长的搜索路径,为1说明只在当前目录下查找。# xargs就是将前一个命令的结果作为后一个命令的命令行参数。这里要注意的是,管道符号是将前一个命令的输出作为后一个命令的输入,而xargs是作为后一个命令的命令行参数,这并不一样。...原创 2021-08-31 17:58:32 · 298 阅读 · 0 评论 -
linux——进程概念(1)
文章目录前言前言这是一个系列文章,主要讲解的是进程相关的知识。原创 2021-08-30 15:37:50 · 216 阅读 · 0 评论 -
Linux-常用工具
文章目录linux下的常用工具yumlrzszvimgcc 、g++gdbmake,makefilegitlinux下的常用工具yum在linux下安装一个软件一般有几种方式,1,直接下载源码,但是这样我们需要在linux下自己编译,而且有可能有些依赖文件我们没有下载导致编译错误。2,我们下载软件包,有人已经将源码编译完成,压缩成了软件包,我们直接下载软件包即可。yum就是一款软件包管理器。就像华为手机的应用商店一样,在yum可以下载软件。使用的方法就是指令下载,sudo yum list |.原创 2021-08-28 09:59:10 · 1227 阅读 · 0 评论 -
Linux-权限
文章目录权限 && 相关指令权限 && 相关指令Linux下有两种用户,超级用户,即root用户,几乎拥有所有的权限。普通用户,只能操作部分权限。从对文件的角度,普通用户又可以分为三类,拥有者user,所属组group,其他人others。每个文件都有这三个属性。...原创 2021-08-24 10:33:45 · 175 阅读 · 0 评论 -
Linux-常用命令
文章目录前言常用命令 && 常用选项lspwdcdtouchmkdirrmdir && rmmancpmvcatmovelessheadtail时间相关的命令catfindgrepzip && unziptar前言这是一个系列文章,主要是linux笔记。常用命令 && 常用选项lspwdcdtouchmkdirrmdir && rmmanman指令是查看手册。如果遇到未知指令或者函数可以使用man。m.原创 2021-08-23 20:37:51 · 593 阅读 · 0 评论