![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 91
糖果罐子♡
精通单片机 c语言 嵌入式工程师
展开
-
孤儿进程,守护进程,僵尸进程
当谈到进程管理时,了解以下进程是很重要的:僵尸进程(Zombie Process),孤儿进程(Orphan Process),守护进程(Daemon Process)。这些概念在进程管理中具有重要意义。了解僵尸进程、孤儿进程和守护进程的特点和处理方法有助于编写更健壮的多进程应用和系统。原创 2023-10-13 16:48:37 · 267 阅读 · 0 评论 -
Linux多线程同步机制(下)
多线程同步机制中的读写锁(Read-Write Lock)是一种特殊的锁机制,用于控制对共享资源的读写访问。读写锁允许多个线程同时读取共享资源,但在写操作时需要独占访问。读写锁的基本原则是:多个线程可以同时获取读锁,但只有一个线程可以获取写锁。当有线程持有写锁时,其他线程无法获取读锁或写锁,直到写操作完成并释放写锁。读写锁有两种状态:读模式下加锁状态(读锁),写模式下加锁状态(写锁)。读写锁只有一把。写独占,读共享。读写锁是 “ 写模式加锁 ” 时,解锁前,所有对该锁加锁的线程都会被阻塞。原创 2023-08-29 15:46:38 · 151 阅读 · 1 评论 -
Linux 多线程同步机制(上)
在多线程环境下,多个线程可以并发地执行,访问共享资源(如内存变量、文件、网络连接 等)。这可能导致 数据不一致性, 死锁, 竞争条件等 问题。为了解决这些问题,需要使用同步机制来确保线程间的协作和互斥访问共享资源。“同步” 的目的 是为了避免数据的混乱,解决与时间有关的错误。实际上,不仅线程需要同步,进程间,信号间等等都需要同步机制。线程同步,指一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时 其他线程为保证数据的一致性,不能调用该功能。原创 2023-08-29 07:11:02 · 464 阅读 · 0 评论 -
Linux 多线程基础
创建新的线程。thread: 用于存储新线程的ID。attr: 线程属性,通常使用NULL表示默认属性。start_routine: 线程的入口函数,线程将从该函数开始执行。arg: 传递给线程入口函数的参数。pthread_t的具体实现可能因不同的操作系统而有所变化,但在 Linux 中,它通常是一个整数类型(例如unsigned long int 或 unsigned int。原创 2023-08-27 15:00:49 · 700 阅读 · 1 评论 -
Linux 共享内存mmap,进程通信
进程间通信是操作系统中重要的概念之一,使得不同的进程可以相互交换数据和进行协作。其中,共享内存是一种高效的进程间通信机制,而内存映射(mmap)是实现共享内存的一种常见方法。进程间共享内存映射(mmap)通信是一种高效、灵活的进程间通信机制。通过内存映射,不同的进程可以共享相同的数据区域,提高数据访问速度和性能。然而,在使用该机制时需要注意同步机制、内存管理和安全性等问题,以确保共享数据的正确性和安全性。原创 2023-08-11 15:41:38 · 812 阅读 · 0 评论 -
Linux命名管道进程通信
命名管道 是实现进程间通信的强大工具,它提供了一种简单而有效的方式,允许不同进程之间进行可靠的数据交换。不仅可以在同一主机上的不相关进程间进行通信,还可以在不同主机之间的进程进行网络通信。命名管道 是一种半双工的通信机制,用于同一主机上的不相关进程之间的通信。它遵循FIFO的原则,也就是先写入的数据会先被读取。命名管道在文件系统中有一个唯一的路径名,使用时需要先创建管道,然后不同进程通过打开同一个路径名的管道文件来进行通信。上篇文章中使用pipe函数进行通信的也叫做匿名管道。原创 2023-08-10 16:13:41 · 703 阅读 · 0 评论 -
Linux 进程间通信, 管道
在多进程编程中,进程间通信(Inter-Process Communication,IPC)是一种重要的技术手段,它使得不同进程可以安全、可靠地进行数据交换和共享资源。进程间管道通信是一种基本而有效的进程间通信机制,在多进程编程中扮演着重要角色。原创 2023-08-10 07:13:03 · 263 阅读 · 0 评论 -
Linux 创建子进程
在计算机科学中,进程(Process)、线程(Thread)和程序(Program)是三个关键概念,它们在操作系统和并发编程中扮演重要角色。原创 2023-08-05 16:52:36 · 1272 阅读 · 0 评论 -
libjpeg解码 jpeg文件
用于定义一个结构体变量cinfo。该变量保存着jpeg数据的详细信息也保存着输出数据的详细信息。/* 解压缩对象 */ struct jpeg_decompress_struct cinfo;libjpeg解码 jpeg文件 主要就是依靠上面几步。大家可以自己试试。原创 2023-01-13 23:38:55 · 2077 阅读 · 0 评论 -
select 机制
一般 POLL 机制的使用较多,但是 SELECT 机制也是比较重要的,还有一些SELECT 机制比较巧妙的功能,我们下次再为大家分享。原创 2023-01-06 10:58:09 · 870 阅读 · 0 评论 -
Linux 下 使用点阵在LCD上显示汉字,字符
这篇文章主要讲一下如何在 LCD 上使用点阵显示汉字,字符 ,修改颜色 及效果展示。其中包含了几个核心函数,我们需要了解。效果:大家可以自行实践一下,有不懂的欢迎留言讨论。原创 2022-12-24 14:04:49 · 2516 阅读 · 2 评论 -
Linux 应用基础 多线程编程
什么是多线程编程呢?大家写代码时可能遇到过一个问题,想实现两个事件,一个需要等待,另一个需要实时进行,这时候如果想两者都正常运行,就需要使用多线程编程了。所谓线程,就是操作系统所能调度的最小单位。对于普通的进程,只有一个线程在执行对应的逻辑。我们可以通过多线程编程,使一个进程可以去执行多个不同的任务。相比多进程编程而言,线程享有共享资源,即在进程中出现的全局变量,每个线程都可以去访问它,,使得系统资源消耗减少,可以提高 CPU 的使用率。多线程编程在实际工作会用很多,希望大家好好理解一下。原创 2022-12-19 11:08:32 · 527 阅读 · 0 评论 -
Linux 应用基础 Framebuffer应用编程
在 Linux应用基础中,Framebuffer 驱动程序主要用来控制 LCD。今天带大家来了解一下如何通过 Framebuffer 来编程 LCD。在此之前,我们要先了解一下 Framebuffer 和 LCD。到此我们对 framebuffer 有了一定的了解。有不懂的欢迎留言,大家一起讨论。原创 2022-12-17 23:30:29 · 969 阅读 · 0 评论