
Linux 应用开发之多线程多进程
文章平均质量分 67
linux应用开发之多线程多进程,以及任务通信
rjszcb
不断学习变成牛
展开
-
linux系统,监控进程运行状态并自动重启崩溃后的进程的多种方法
换句话说,init 守护进程是系统上所有进程的父进程。soc的内部是有看门狗的,可以通过看门狗,检测soc,某个进程是否卡死,跑飞,如果没有及时喂狗,说明程序异常,强制重启系统。ps -aux可以看到进程的运行状态,init是个守护进程,对僵死进程进行回收,那么肯定有种方法,可以重启进程。一般大产品,如汽车,是不能完全依赖这种技术方案的,会外接一个mcu,来监控soc,通过soc发送心跳包,1。有的公司,会写monitor守护进程,监视各个进程的运行状态,异常时,自动重启,但是这种,通过一个进程。原创 2024-10-11 14:09:01 · 1954 阅读 · 0 评论 -
Linux 多进程 .之多进程,多线程的概念和区别,进程线程的调度,状态关系(一)
无论执行哪个进程,另一个进程肯定是不被执行,程序自然就是无运行的状态。一个基本的事实前提:单核CPU在一个瞬间只能处理一个任务,就像人只有一张嘴,不能吃饭的同时,又说话,又唱歌,有人抬杠,不是同时进行的吗,说话时声带振动,吃饭吞咽时,是不可以声带振动的,不然会被噎死。所谓的进程上下文,就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容,当内核需要切换到另一个进程时,它 需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,能够恢复切换时的状态,继续执行。原创 2022-01-07 19:51:31 · 841 阅读 · 0 评论 -
Linux 多进程 .之多进程的创建,僵尸进程,守护进程,及C语言api(fork,getpid,wait等)介绍(一)
(6)共享内存(shared memory):共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问,共享内存是最快的IPC方式,它是针对其他进程间的通信方式运行效率低而专门设计的。线程,它是进程内部的一个实体,是CPU 调度的基本单位,它是比进程更小的能独立运行的基本单位。但是,它可以与同属于一个进程的其他线程 共享进程所拥有的资源。相对进程而言,线程是一个更加接近于代码执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己独立的栈空间,拥有独立的执行序列。原创 2020-11-08 23:00:10 · 415 阅读 · 0 评论 -
Linux 多进程间通信机制.之(管道、信号、共享内存/信号量/消息队列)(一)
采用共享内存进行通信的一个主要好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝,对于像管道和消息队里等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次:一次从输入文件到共享内存区,另一次从共享内存到输出文件。这些情况通常由硬件检测到,将其通知内核,然后内核产生适当的信号通知进程,例如,内核对正访问一个无效存储区的进程产生一个SIGSEGV信号。按上图演示,最后进程B会接收到进程A发送的hello,进程C的world接收不到,因为B和C不在同一类型。转载 2020-11-08 22:40:06 · 192 阅读 · 0 评论 -
linux多进程多线程区别,同步与异步(一)
1.进程、线程(1)进程概念进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序,数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息是进程存在的唯一标志。进程具有的特征:动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消原创 2020-11-08 23:33:36 · 623 阅读 · 1 评论 -
Linux 多进程间通信.之文件共享的方式(一)
使用pwrite函数可以避免这种情况的发生,因为它直接写入指定位置,不会修改文件指针。调用上面头文件的ShareInfo_Write_XXXX、ShareInfo_Read_XXXX就可以对一个结构体数据写入到"/tmp/shareinfo"偏移量的位置上,支持多进程共享。原文链接:https://blog.youkuaiyun.com/suifen_/article/details/134624386。写入长度的限制:pwrite函数一次只能写入一定长度的数据,如果要写入的长度超过该限制,就需要拆分成多个写入操作。原创 2024-08-08 15:26:24 · 1044 阅读 · 0 评论 -
Linux 多进程间通信.之设备驱动buf共享的方式(二)
通过写一个驱动,这样多个进程,就都可以访问这段内存空间了。原创 2024-08-08 15:31:30 · 127 阅读 · 0 评论 -
Linux多进程间通信.之消息队列实例(三)
Linux进程间通信-消息队列实例(解决mstar平台连续发管道消息数据会丢失的问题)https://blog.youkuaiyun.com/suifen_/article/details/134642496?原创 2024-08-08 15:34:35 · 147 阅读 · 0 评论 -
Linux 多线程.之C语言api(pthread_create,pthread_join 等)(一)
原创 2022-01-07 19:50:58 · 789 阅读 · 0 评论 -
Linux多线程间通信机制(互斥锁、条件变量、信号量,读写锁)同步与异步(一)
同进程下,所有线程共享对某信号的处理方式,即一个设置,所有有效;多个线程的程序,向某一个线程发送终止信号,则整个进程终止。若当前线程读数据,则允许其他线程读数据,但不允许写,若当前线程写数据,则不允许其他线程读、写数据。成功:0,失败:非零值, 唤醒所有等待cond的线程 ,隐含获取需要的互斥锁。线程信号量类似进程的信号量,主要是使得多个线程访问共享资源时,顺序互斥访问。针对多读者,少写者的情况设定,允许多读,但此时不可写;成功:0,失败:非零值 唤醒等待cond的第一个线程,隐含获取需要的互斥锁。转载 2020-11-08 23:40:12 · 905 阅读 · 0 评论 -
Linux多线程间通信机制(互斥锁、条件变量、信号量,读写锁)同步与异步(二)
原文链接:https://blog.youkuaiyun.com/weixin_55796564/article/details/119699146一、概述本章介绍了线程同步的几种不同的方法,包括互斥锁、条件变量、自旋锁以及读写锁,当然,除此之外,线程同步的方法其实还有很多,譬如信号量、屏障等等,如果大家有兴趣可以自己查阅相关书籍进行学习。在实际应用开发当中,用的最多的还是互斥锁和条件变量,当然具体使用哪一种线程同步方法还是得根据场景来进行选择,方能达到事半功倍的效果!本章来聊一聊线程同步这个话题,对于一个单线程原创 2024-08-14 11:46:18 · 1071 阅读 · 0 评论 -
Linux 多线程通信.全局变量,结构体,队列,项目模版(一)
原创 2021-10-28 15:15:38 · 162 阅读 · 0 评论 -
多线程比多进程好?优缺点(六)
在Linux下编程多用多进程编程少用多线程编程。 IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多。进出最快的锁(windows2k的 critical section和linux的pthread_mutex),windows比linux的要快五倍左右。当然这并不是说linux不好,而且在经过实际编程之后,综合来看我觉得linux更适合做high performance server,不过在多线程这个具体的领域内,linux还是稍逊windows一点。转载 2020-11-08 22:45:35 · 511 阅读 · 0 评论 -
为了保证系统安全采用多进程而不是多线程
如,汽车行业,如下是看到的一段模块设计,最后一个进程,可以来监控系统的相关进程工作状态,用看门狗来保证监督,决定系统是否重启。在一些行业,系统由多个模块组成,为了确保某个模块死机后,不会导致整个系统的崩溃,就需要采用多进程进行设计。原创 2022-11-30 14:53:51 · 416 阅读 · 0 评论 -
linux 常见锁的用法
linux 常见锁的用法内核锁,应用层锁互斥锁,自旋锁原创 2022-01-10 11:07:14 · 583 阅读 · 0 评论