音箱同时做三件事:播放音乐,监听按键(读设备文件)(文件描述符),监听网络(文件描述符)并发,多进程(健壮,一个死了其他不会死)select
Linux一切皆文件
3个进程
父进程 select监听按键和网络
子进程 wait等待孙进程结束
孙进程 播放音乐
进程间通信 :共享内存(效率最高)
1.进程号 2.当前播放的音乐名字3.记录播放模式
链表:把U盘里面所有革歌名读出来,存放在链表中(双向链表)
1.暂停:父进程给子进程和父进程发送sigstop |
2.继续:父进程给子进程和孙进程发送sigcont |
3.上一首:先要获取当前播放的音乐,遍历链表,找到上一首,杀死孙进程和子进程,重新启动进程播放音乐 |
4.播放模式: |
音频解码
启动线程,不影响音箱的工作