
Linux系统编程
库·线程·进程
玖零猴
嵌入式·ROS·CV·ML·DL·医学影像分割
展开
-
线程池
在了解线程池之前如果大家对线程还不了解,可以看我往期的博客(链接)在多线程编程中如果线程数量多的话,频繁的创建和销毁线程会大大浪费时间和效率,更重要的是浪费内存,因为正常来说线程执行完毕后死亡,线程对象变成垃圾被回收!那么有没有一种方法能让线程运行完后不立即销毁,而是让线程重复使用,继续执行其他的任务呢?我们使用线程池就能很好地解决这个问题。线程池(英语:thread po...原创 2020-02-11 21:14:02 · 2965 阅读 · 0 评论 -
线程/进程 的互斥和同步机制
在我的Linux专栏中讲到过多进程编程和多线程编程二者的定义和用法我都做了详细的讲解,并且还附带了源代码在期间有个重要的概念我们需要单独拎出来讲我们知道, 多个进程/线程同时访问同一共享资源时会造成数据混乱因此呢,才需要互斥和同步机制进行保护互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是...原创 2020-02-11 19:03:53 · 3421 阅读 · 0 评论 -
Linux 多线程编程 (典藏、含代码)
目录1.基础知识2. 相关函数2.1创建线程 ----------- pthread_create2.2获取线程ID ------------ pthread_self2.3等待线程结束 ----------- pthread_join / 线程的分离 ----------- pthread_detach2.4线程退出 2.4.1 正常退出pthr...原创 2020-02-11 17:31:40 · 8989 阅读 · 0 评论 -
Linux进程间通信第四讲 标准IPC之信号量集
目录4.3信号量集4.3.1 概念和原理4.3.2 使用4.3信号量集4.3.1 概念和原理(不是用于进程间传递数据、而是用于进程间访问控制)信号量集是一个信号量的集合,可以存放多个信号量而信号量就是一个计数器,用于记录进程的访问次数, 每来一个进程访问计数值-1(P操作),每离开一个进程计数值+1(V操作)当计数值为0时就不在允许进程访问,直到计数值重新大于...原创 2020-02-07 15:46:10 · 3295 阅读 · 3 评论 -
Linux进程间通信第四讲 标准IPC之消息队列
目录4.2消息队列4.2.1 概念和原理4.2.2 使用4.2消息队列4.2.1 概念和原理消息队列是另一种标准IPC,当然也大概遵循大部分标准消息队列,它是存放消息(数据)的队列,而队列是先进先出的线性数据结构换句话说,我们就是利用这个数据结构 进行进程间的通信消息队列允许多个进程同时读写消息.由于消息可以定义很多类型,取出时可以指定哪个消息类型取出,所以...原创 2020-02-07 15:45:11 · 3041 阅读 · 0 评论 -
Linux进程间通信第四讲 标准IPC之共享内存
目录四、标准IPC4.1 共享内存4.1.1 概念和原理4.1.2 使用四、标准IPC标准IPC是一类遵循指定标准的IPC(进程间通信)的统称,其实就是其中所有的IPC都具有一部分相同的标准标准IPC包含 共享内存 消息队列 信号量集标准IPC的通用规范(上: 用户 下: 内核), 如下图所示:( 1 )所有的标准IPC都有一个内部ID作为唯一标识( 2...原创 2020-02-07 15:43:42 · 3154 阅读 · 0 评论 -
Linux进程间通信第三讲 信号signal kill
目录三、信号(signal)3.1 概念3.2 信号的处理3.3 信号的发送3.4 信号的屏蔽三、信号(signal)3.1 概念信号本质上是一种软件中断软件触发的中断、和硬件的处理机制一样当收到信号时, 停下来手头的事情,去处理信号处理函数,处理完后,再继续做原来的事情信号处处都在其实我们已经看到过1、程序在运行时, 我们想退出, ...原创 2020-02-07 15:39:01 · 3427 阅读 · 0 评论 -
Linux进程间通信第二讲 管道PIPE FIFO
目录二、管道(PIPE 、FIFO)2.1无名管道(PIPE)2.1.1 父子通信2.1.2 兄弟通信2.2有名管道(FIFO)二、管道(PIPE 、FIFO)最古老的IPC之一, 以管道文件作为媒介进行传输其中分为有名管道和无名管道无名管道的管道文件在文件系统中不可见, 而有名可见管道通信实质上是内存通信, 由内核负责2.1无名管道(PIPE)...原创 2020-02-07 15:37:10 · 3095 阅读 · 0 评论 -
Linux 进程间通信第一讲 IPC
一、IPC的概念IPC(Interprosses communication),中文为进程间通信我们知道,进程在内存中拥有自己独立的进程空间,各个进程之间无法直接进行数据交流(如果对进程概念还不是很熟悉的小伙伴,可以看我上一篇内容)因此,我们需要进程间通信的机制,使得它们能够进行数据交流目前,主要有以下7种通信机制:1、文件操作(一个进程写, 一个进程读, 一般不使用...原创 2020-02-07 15:35:35 · 2872 阅读 · 0 评论 -
Linux多进程编程(典藏、含代码)
目录一、基础知识1.1、进程的概念1.2、多进程(任务)并行的实现1.3、重要指令1.4、父子进程和进程ID二、多进程编程2.1创建子进程 (fork/vfork 叉子)2.1.1 fork2.1.2vfork2.2进程结束2.2.1正常退出2.2.2异常退出2.3等待进程结束并资源回收2.3.1 wait函数2.3.2 waitpi...原创 2020-02-03 21:44:40 · 6966 阅读 · 2 评论 -
Linux 库的制作和使用(典藏、含代码)
目录一、库的概念二、库的类型2.1 静态库(*.a)2.2 动态库,也叫共享库(*.so)三、制作和使用静态库3.1 制作静态库3.2使用静态库四、制作和使用动态库4.1 制作动态库4.2使用动态库4.2.1静态加载4.2.2动态加载 4.2.2.1 编写代码 4.2.2.1 编译代码一、库的概念编译一个...原创 2020-02-03 12:46:28 · 4122 阅读 · 0 评论