随笔分类 -  Linux

摘要:线程同步 当多个线程同时对一个共享数据进行操作时,会导致数据竞争,下面例子展示了数据竞争的情况: 1 #include <pthread.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <string.h> 5 #include <u 阅读全文
posted @ 2024-03-10 22:56 西兰花战士 阅读(306) 评论(0) 推荐(0)
摘要:线程的概念 线程是指程序中的一条执行路径。在一个进程中,至少有一个线程,称为主线程,通过主线程可以派生出其他子线程。 Linux系统内核只提供了轻量级进程(light-weight process)的支持,并未实现线程模型。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。进 阅读全文
posted @ 2024-03-10 22:21 西兰花战士 阅读(151) 评论(0) 推荐(0)
摘要:进程关系 进程组 进程组概念 在 Linux 中,进程组是一个或多个进程的集合,简称PGID。每个进程都属于一个进程组,目的是为了便于对一组进程进行管理。通过将多个相关进程划分到一个进程组中,可以更方便地对他们进行控制,像发送信号、终止等操作。 当父进程创建子进程时,子进程会默认加入父进程所属的组。 阅读全文
posted @ 2024-03-07 20:14 西兰花战士 阅读(83) 评论(0) 推荐(0)
摘要:POSIX 共享内存 POSIX 共享内存是一种在 Linux 系统上使用的共享内存机制,它允许多个进程可以访问同一个内存区域,从而实现进程间的数据共享。共享内存是可用IPC机制中最快的,使用共享内存不必频繁拷贝数据。但也需要注意,由于共享内存段中的数据可以被多个进程同时访问,因此需要在程序设计中考 阅读全文
posted @ 2024-03-07 20:08 西兰花战士 阅读(485) 评论(0) 推荐(1)
摘要:POSIX 消息队列 POSIX 消息队列可以认为是一个消息链表。进程(线程)可以往里写消息,也可以从里面取出消息。可以在不相关的进程之间发送和接收数据。 创建(打开)消息队列-mq_open()函数 mq_open()函数用于打开或创建一个消息队列,该函数定义如下: #include <mqueu 阅读全文
posted @ 2024-03-07 20:00 西兰花战士 阅读(472) 评论(0) 推荐(0)
摘要:POSIX 信号量 POSIX 信号量是一种 POSIX 标准中定义的进程间同步和互斥的方法。它允许进程之间通过信号量来实现临界区的互斥访问,从而避免竞争条件和死锁等问题。 信号量的P、V操作: P 操作:用于申请信号量资源。如果信号量的值大于 0,则将信号量的值减 1,表示占用一个资源;如果信号量 阅读全文
posted @ 2024-03-01 11:09 西兰花战士 阅读(230) 评论(0) 推荐(0)
摘要:管道 管道是针对于本地计算机的两个进程之间的通信而设计的通信方法,管道建立后,实际上是获得两个文件描述符:一个用与读取而另一个用于写入。任何从管道写入端写入的数据,可以从管道读取端读出。 管道具有以下特点: 管道是一种半双工通信机制,即数据只能在一个方向上流动,不能同时进行双向数据传输。一个进程可以 阅读全文
posted @ 2024-03-01 10:39 西兰花战士 阅读(138) 评论(0) 推荐(0)
摘要:信号 信号(signal)机制是Linux系统中最为古老的进程之间的通信机制。Linux信号也可以称为软中断,是在软件层次上对中断机制的一种模拟。在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,进程不需要通过任何操作等待信号到达。 信号 阅读全文
posted @ 2024-02-29 10:42 西兰花战士 阅读(284) 评论(0) 推荐(0)
摘要:进程基础概念 Linux进程是计算机运行中的一个程序的实例。每个进程都是计算机中一个独立的执行单元,具有自己的内存空间、代码、数据和打开的文件。Linux使用进程作为执行任务的基本单位,可以同时运行多个进程,并采用时间片轮转调度算法来分配CPU时间给每个进程。如果系统中某个进程崩溃,它不会影响到其余 阅读全文
posted @ 2024-02-18 19:32 西兰花战士 阅读(80) 评论(0) 推荐(0)
摘要:文件描述符表 每启动一个进程,系统会在内核空间中为该进程创建一个 struct task_struct 结构体,用于存储和管理进程的各种信息。在这其中,有一项名为文件描述符表的数据结构。文件描述符表是内核中一个关键的数据结构,用于跟踪进程打开的文件或其他 I/O 对象。它通常是一个简单的数组,每个文 阅读全文
posted @ 2024-02-11 20:05 西兰花战士 阅读(54) 评论(0) 推荐(0)
摘要:初识Vim Vim被称为神一样的编译器,人类历史上最好文本编辑器(^_^)。学习成本很高,学习路线陡峭。下面列举一些入门的教程: 慕课网-玩转Vim 从放弃到爱不释手 新手必看 Vim实用技巧(第2版) 精通Vim:用Vim8和Neovim实现高效开发 vimtutor,在命令行中输入 vimtut 阅读全文
posted @ 2024-01-31 10:34 西兰花战士 阅读(102) 评论(0) 推荐(0)