- 博客(6)
- 收藏
- 关注
原创 Linux开发之简单ftp类云盘实现代码分享
举例:比如客户端键盘输入 lls命令,客户端:read(这时候客服端会阻塞,等待服务器端write,服务器端解析完lls命令后,就会把结果write到客户端socket里面),从而显示出内容来。功能:ftp服务器分客户端和服务端。其中客户端可以查看本地文件,可以查看云盘文件,可以切换本地路径位置,也可以切换云盘路径位置,可以上传文件,也可以下载文件。lcd xxx 切换服务器到xxx 目录。cd xxx 切换到 xxx 目录。步骤:客户端和服务器端 socket套接字连接。
2024-12-28 13:18:56
240
原创 c语言实现哲学家就餐问题代码分享
分析: 比如说哲学家3想吃饭,那他会拿自己左手边的筷子(规定1),在拿起左手筷子后,哲学家3会拿起自己右手边的筷子,如果右手边筷子没有人拿起,哲学家3就吃饭,吃完饭后,哲学家3放下左右手筷子。哲学家就餐问题属于经典的死锁问题,问题描述的是:有五个哲学家,每个哲学家左右手各有一根筷子,哲学家会思考,饿了就会吃饭,而吃饭的话,哲学家需要拿自己左手和右手的筷子才可以动手吃饭,吃完饭的哲学家会把左右手的筷子归位。规定2、哲学家拿起左筷子,去拿右筷子,若右筷子已经被拿走了,那么哲学家需要把刚才拿起来的左筷子放回去。
2024-12-20 13:15:35
373
原创 linux开发多线程之条件变量实现生产者消费者代码分享
PV操作,简单来说我们通过信号量来控制线程或进程对共享资源的访问,P操作(wait)用于申请一个单位资源(消费一个),对信号量进行减一操作,当信号量大于0时,进程(线程)可以执行,否则阻塞等待。V操作(signal)用于释放一个单位资源(生产一个),对信号量进行加一操作,当信号量小于0,则唤醒一个等待该资源的进程(线程)。简单来说,设置n个商品,n > 0时,消费者可以用来消费, n <= 0时,消费者等待生产者生产。pthread_cond_signal 函数。pthread_cond_wait 函数。
2024-12-19 12:52:18
245
原创 Linux信号操作之PV实现原理代码分享
3、当执行ctrl +c 的时候,会停止子进程(避免僵尸进程),然后删掉信号、删掉共享内存内容、再删掉共享内存,最后停止父进程的运行。1、父进程要永远优先子进程执行,fork函数之后,子进程和父进程是并行执行的,代码看起来是永远父进程,跟内核进程调度算法有关。2、PV 操作是通过控制信号灯的值,保护一个共享变量,当一个进程对共享变量进行操作时,其他的进程不能改变或影响其结果。// 对该信号量的操作, 取值:-1(代表P上锁),1(V解锁)unsigned short sem_num;
2024-12-14 14:56:57
452
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅