- 博客(5)
- 收藏
- 关注
原创 Linux C哲学家吃饭问题
哲学家吃饭问题哲学家问题线程中的信号量无名信号量的定义:P操作:使信号量-1V操作:使信号量+1正常代码(可能发生死锁现象)解法1解法2哲学家问题有五个哲学家绕着圆桌坐,每个哲学家面前有一盘面,两人之间有一支筷子,这样每个哲学家左右各有一支筷子。哲学家有2个状态,思考或者拿起筷子吃饭。如果哲学家拿到一只筷子,不能吃饭,直到拿到2只才能吃饭,并且一次只能拿起身边的一支筷子。一旦拿起便不会放下筷子直到把饭吃完,此时才把这双筷子放回原处。如果,很不幸地,每个哲学家拿起他或她左边的筷子,那么就没有人可以吃到饭了
2021-05-24 22:23:38 936 1
原创 Linux C生产者和消费者(线程)
生产者和消费者生产者消费者问题实现目标原理代码生产者消费者问题生产者消费者共享缓冲区,生产者向缓冲区中放数据,消费者从缓冲取中取数据,当缓冲区中被放满时,生产者进程就必须进入挂起状态,直到消费者从缓冲中取走数据时,生产者才能继续向缓冲区中存放数据,同样当缓冲取中没有数据时,消费者进程就必须进入挂起休眠状态,直到生产者向缓冲区中放入数据时,消费者才能被唤醒继续从缓冲区中取走数据。生产者消费者问题,也称有限缓冲问题,是一个多线程同步问题的经典案例。实现目标单生产者,单消费者多生产者,多消费者原理
2021-05-24 21:51:41 481
原创 LinuxC编程进程间的通信总结
LinuxC编程进程间的通信总结前言管道有名管道本文参考《LinuxC编程实战》前言进程的空间地址是各自独立的,因此进程间进行数据交流就需要特定的通信机制,在大型应用中往往需要多个进程同时工作,这就需要进程间的数据交流和配合。进程间的通信方式有:管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程间的亲缘关系一般指父子进程关系。有名管道(named pipe):有名管道也是半双工管道通信方式,但是它允许不具有亲缘关系的进程间的通信。信号量(
2021-05-16 21:26:25 256
原创 LinuxC编程实战信号详细总结
LinuxC编程实战信号总结信号的来源信号的种类1.可靠信号和不可靠信号2.信号的优先级信号的捕捉和处理信号处理函数的返回本文参考《LinuxC编程实战信号的来源信号来源按产生体哦啊间的不同分为硬件和软件两种方式。1.硬件方式:1). 用户按下某些键所产生的信号。如<ctrl + C>组合键产生一个SIGINT信号。2). 硬件异常产生的一些信号。2.软件方式:1). 用户在终端下用kill命令向进程发送任意信号;2). 进程调用kill 或 sigqueue 函数发送信号;
2021-05-11 17:33:00 229
原创 Linux中make和makefile简单讲解(实例)
make和makedile简单讲解make的作用make的使用makefile文件make的作用make的使用makefile文件
2021-05-07 16:42:39 300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人