- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 生产者消费者模型(条件变量+互斥锁)
生产者消费者模型线程同步典型的案例即为生产者消费者模型,而借助条件变量来实现这一模型,是比较常见的一种方法。假定有两个线程,一个模拟生产者行为,一个模拟消费者行为。两个线程同时操作一个共享资源,生产者向其中添加产品,消费者从中消费掉产品。下面展示一些代码片段:#include <stdio.h>#include <unistd.h>#include <pthread.h>#include <stdlib.h>#include <string
2021-03-21 23:51:31
479
2
原创 哲学家就餐(避免死锁)(多进程版)
哲学家就餐(避免死锁)(多进程版)哲学家就餐利用信号量在多进程之间实现下面展示一些代码片段#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/wait.h>#include <sys/types.h>#include <sys/mman.h>#include <semaphore.h>int main(){
2021-02-23 21:45:53
297
原创 哲学家就餐问题(如何避免死锁)(多线程版)
哲学家就餐问题多线程编程中,常常会遇到线程间访问共享资源的问题,如果处理不当则会发生死锁,某一个线程可能永远访问不到共享资源。为了避免死锁的发生,提出哲学家就餐问题。下面展示一些代码片段#include <stdio.h>#include <unistd.h>#include <pthread.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#inc
2021-02-22 22:03:14
3893
12
原创 利用SIGCHLD信号回收子进程
子进程执行结束之后,父进程如果不对其进行回收,子进程就会变为僵尸进程。父进程可以通过调用wait()函数和waitpid()函数去回收子进程.由于子进程结束时会发送SIGCHLD信号给父进程,不过此信号的默认动作为忽略,我们可以通过系统函数sigaction()设置信号捕捉,在信号捕捉函数中去回收子进程。信号捕捉函数中回收子进程的方法:waitpid函数下面展示一些 代码片#include <stdio.h>#include <unistd.h>#include &l
2021-01-28 22:42:05
2271
3
原创 初来乍到,多多关照。
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入从今天开始就...
2019-03-08 13:22:17
185
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人