随笔分类 -  Linux系统编程

linux系统编程
摘要:守护进程也称Daemon(精灵)进程,是Linux中的后台服务进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。一般采用以d结尾的名字。如httpd,nfsd、sshd等 Linux后台的一些系统服务进程,没有控制终端,不能直接和用户交互。不受用户登录、注销的影响,一直在运行 阅读全文
posted @ 2024-04-04 20:05 lethe1203 阅读(77) 评论(0) 推荐(0)
摘要:在 Linux 中,进程创建和管理的相关函数主要是 fork()、exec()、wait() 和 exit() 举个例子: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/wait.h> int mai 阅读全文
posted @ 2024-04-04 09:21 lethe1203 阅读(33) 评论(0) 推荐(0)
摘要:程序中,频繁地调用pthread_create函数创建线程,非常浪费时间,尤其在服务器端的时候,多线程的使用情况下频繁启用线程和释放线程资源,这样也会影响程序的运行效率。 可以先在服务器空闲的时候先创建多个线程,我们先在线程函数里面使用pthread_cond_wait将其休眠,有任务过来的时候使用 阅读全文
posted @ 2024-04-04 08:11 lethe1203 阅读(43) 评论(0) 推荐(0)
摘要:在 Linux 多线程编程中,条件变量是一种用于线程间同步的重要机制。它通常与互斥锁结合使用,用于解决多个线程竞争共享资源的问题。条件变量允许一个线程在等待某个条件变为真时阻塞,并且在另一个线程改变条件并通知时恢复执行。这个玩意跟内核等待队列差不多意思。 在 Linux 多线程编程中,使用条件变量进 阅读全文
posted @ 2024-04-04 07:46 lethe1203 阅读(73) 评论(0) 推荐(0)
摘要:在 Linux 多线程编程中,互斥锁(Mutex)是一种常用的同步机制,用于保护共享资源,防止多个线程同时访问导致的竞争条件。在 POSIX 线程库中,互斥锁通常通过 pthread_mutex_t 类型表示,相关的函数包括 pthread_mutex_init、pthread_mutex_lock 阅读全文
posted @ 2024-04-04 07:36 lethe1203 阅读(102) 评论(0) 推荐(0)
摘要:在 Linux 多线程编程中,有一些常用的函数和相关概念。这里做个记录方便查找: pthread_create: 创建线程。 该函数的原型为 int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start 阅读全文
posted @ 2024-04-04 07:31 lethe1203 阅读(45) 评论(0) 推荐(0)
摘要:Linux 中的信号量通常指的是进程间通信(IPC)中的一种机制,用于实现进程之间的同步和互斥。在 Linux 中,主要有两种类型的信号量:System V 信号量和 POSIX 信号量。 1. System V 信号量 System V 信号量是最早引入 Linux 的一种进程间通信机制,它使用 阅读全文
posted @ 2024-04-04 07:15 lethe1203 阅读(116) 评论(0) 推荐(0)
摘要:Linux 中的共享内存是一种进程间通信的机制,允许多个进程共享同一块物理内存区域。共享内存是一种高效的 IPC(进程间通信)方式,适用于需要频繁交换数据的情况,因为它不涉及数据的复制,而是直接在内存中进行读写操作。 在 Linux 中,共享内存的使用通常涉及以下几个步骤: 创建共享内存段:使用 s 阅读全文
posted @ 2024-04-04 06:53 lethe1203 阅读(85) 评论(0) 推荐(0)
摘要:Linux 中的消息队列是一种进程间通信(IPC)机制,允许不同进程之间通过消息进行通信。 消息队列中的相关函数: msgget:创建或打开一个消息队列。 函数原型:int msgget(key_t key, int msgflg); 参数: key:消息队列的键值,用于标识消息队列。 msgflg 阅读全文
posted @ 2024-04-04 06:39 lethe1203 阅读(86) 评论(0) 推荐(0)
摘要:匿名管道(Anonymous Pipe)和有名管道(Named Pipe,也称为FIFO)是两种不同的进程间通信方式,它们有以下主要区别: 命名和使用方式: 匿名管道没有名字,只能在具有亲缘关系的进程之间使用,通常是在调用pipe()函数后直接使用,无需其他步骤。 有名管道有一个文件名,它在文件系统 阅读全文
posted @ 2024-04-04 06:09 lethe1203 阅读(43) 评论(0) 推荐(0)
摘要:进程间通信是指不同的进程之间进行数据交换和共享信息的过程,下面几个主要原因说明需要进程间通信: 数据共享:不同进程可能需要共享数据或资源,以完成某些任务。例如,多个进程可能需要访问共享的文件、数据库或内存区域。 并发处理: 在多进程编程中,不同的进程可以并发执行,提高了系统资源的利用率和程序的执行效 阅读全文
posted @ 2024-04-04 05:52 lethe1203 阅读(53) 评论(0) 推荐(0)
摘要:1、线程与进程 进程:一个正在执行的程序,是资源分配的最小单位 1)进程中的事情需要按照一定的顺序逐个执行,那么如何让一个进程中的一些事情同时执行? 2)进程出现了很多弊端:一是由于进程是资源拥有者,创建、撤销与切换存在较大的时空开销,因此需要引入轻量级进程;二是由于多处理器(SMP)出现,可以满足 阅读全文
posted @ 2024-03-19 13:21 lethe1203 阅读(77) 评论(0) 推荐(0)