随笔分类 -  Linux多进程、线程

摘要:守护进程 1、守护进程用来干啥的 守护进程主要用来将进程的父进程设置为init进程,这样的话就可以后台运行,而不依赖shell。 一般来说除非服务器关机,或是某些特殊操作,否则守护进程会一直存在。 2、守护进程的创建 简单来说: #include <unistd.h> void main(void) 阅读全文 »
posted @ 2024-06-28 17:09 西北小蚂蚁 阅读(34) 评论(0) 推荐(0) 编辑
摘要:1、daemon进程(守护进程) 对于C语言而言,glibc提供了daemon函数,从而帮我们将程序转化成daemon进程。 #include <unistd.h> //int daemon(int nochdir, int noclose); daemon(0,0);//写在要设置的进程里面就行了 阅读全文 »
posted @ 2022-04-26 22:30 西北小蚂蚁 阅读(35) 评论(0) 推荐(0) 编辑
摘要:共享内存: 特点: 1、共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝 2、为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将其映射到自己的私有地址空间 3、进程就可以直接读写这一内存区而不需要进行数据的拷贝,从而大大提高的效率。 4、由 阅读全文 »
posted @ 2022-03-31 20:01 西北小蚂蚁 阅读(919) 评论(0) 推荐(0) 编辑
摘要:有名管道(命名管道) 注意:管道文件存在的意义:为了让任意的进程之间完成通信(非血缘关系)管道文件存储在磁盘上,但是大小永远为0意味着数据不会被存储在管道文件中,而是每一次的读写都是往内核中的管道进行读写。 有名管道特点: 1、 有名管道可以适用于任意两个进程之间的通信 2、 有名管道可以实现双工通 阅读全文 »
posted @ 2022-03-31 19:34 西北小蚂蚁 阅读(160) 评论(0) 推荐(0) 编辑
摘要:案例:#include <stdio.h> fork();创建的子进程继承该函数之前的所有父进程代码,以及缓冲区; exit():结束本进程返回一个int型值,WEXITSTATUS(status)用来接收返回值(只针对wait()); wait();和waitpid();的不同 wait():是个 阅读全文 »
posted @ 2022-03-30 19:56 西北小蚂蚁 阅读(140) 评论(0) 推荐(1) 编辑
摘要:给线程一个顺序(及线程的同步) 信号量(线程同步) 头文件 #include <semaphore.h> 信号量的初始化: int sem_init(sem_t *sem, int pshared, unsigned int value); return: 0成功 -1失败 sem_t *sem: 阅读全文 »
posted @ 2022-03-30 15:36 西北小蚂蚁 阅读(26) 评论(0) 推荐(0) 编辑
摘要:互斥锁 互斥锁的作用:// 在某一时刻,只允许一个线程访问临界资源例如:在线程1里面会对全局变量进行修改,在线程2里面也会对与线程1相同的全局变量进行修改,为了相互不影响,我们希望在线程1操作这个变量的时候线程2不能操作这个变量,或者在线程2操作这个变量的时候线程1不能操作这个变量,也就是在同一时间 阅读全文 »
posted @ 2022-03-30 15:21 西北小蚂蚁 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Linux多线程程序: 用到的函数: int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void *(*func) (void *), void *arg); pthread_create用于创建一个线程,成功返回0,否则返 阅读全文 »
posted @ 2022-03-30 14:43 西北小蚂蚁 阅读(47) 评论(0) 推荐(0) 编辑
摘要:信号量(线程同步) 头文件 #include <semaphore.h> 信号量的初始化: int sem_init(sem_t *sem, int pshared, unsigned int value); return: 0成功 -1失败 sem_t *sem: 要初始化的信号量 int psh 阅读全文 »
posted @ 2021-07-20 18:17 西北小蚂蚁 阅读(64) 评论(0) 推荐(1) 编辑
摘要:int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void *(*func) (void *), void *arg); int pthread_join (pthread_t tid, void ** status); p 阅读全文 »
posted @ 2021-07-18 11:06 西北小蚂蚁 阅读(385) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示