<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[snjshbs的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/snjshbs</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; snjshbs]]></copyright><item><title><![CDATA[Linux开发之简单ftp类云盘实现代码分享]]></title><link>https://blog.youkuaiyun.com/snjshbs/article/details/144769349</link><guid>https://blog.youkuaiyun.com/snjshbs/article/details/144769349</guid><author>snjshbs</author><pubDate>Sat, 28 Dec 2024 13:18:56 +0800</pubDate><description><![CDATA[举例：比如客户端键盘输入 lls命令，客户端：read（这时候客服端会阻塞，等待服务器端write，服务器端解析完lls命令后，就会把结果write到客户端socket里面），从而显示出内容来。功能：ftp服务器分客户端和服务端。其中客户端可以查看本地文件，可以查看云盘文件，可以切换本地路径位置，也可以切换云盘路径位置，可以上传文件，也可以下载文件。lcd xxx         切换服务器到xxx 目录。cd xxx         切换到 xxx 目录。步骤：客户端和服务器端 socket套接字连接。]]></description><category></category></item><item><title><![CDATA[c语言实现哲学家就餐问题代码分享]]></title><link>https://blog.youkuaiyun.com/snjshbs/article/details/144608261</link><guid>https://blog.youkuaiyun.com/snjshbs/article/details/144608261</guid><author>snjshbs</author><pubDate>Fri, 20 Dec 2024 13:15:35 +0800</pubDate><description><![CDATA[分析： 比如说哲学家3想吃饭，那他会拿自己左手边的筷子(规定1)，在拿起左手筷子后，哲学家3会拿起自己右手边的筷子，如果右手边筷子没有人拿起，哲学家3就吃饭，吃完饭后，哲学家3放下左右手筷子。哲学家就餐问题属于经典的死锁问题，问题描述的是：有五个哲学家，每个哲学家左右手各有一根筷子，哲学家会思考，饿了就会吃饭，而吃饭的话，哲学家需要拿自己左手和右手的筷子才可以动手吃饭，吃完饭的哲学家会把左右手的筷子归位。规定2、哲学家拿起左筷子，去拿右筷子，若右筷子已经被拿走了，那么哲学家需要把刚才拿起来的左筷子放回去。]]></description><category></category></item><item><title><![CDATA[linux开发多线程之条件变量实现生产者消费者代码分享]]></title><link>https://blog.youkuaiyun.com/snjshbs/article/details/144583229</link><guid>https://blog.youkuaiyun.com/snjshbs/article/details/144583229</guid><author>snjshbs</author><pubDate>Thu, 19 Dec 2024 12:52:18 +0800</pubDate><description><![CDATA[PV操作，简单来说我们通过信号量来控制线程或进程对共享资源的访问，P操作(wait)用于申请一个单位资源(消费一个)，对信号量进行减一操作，当信号量大于0时，进程（线程）可以执行，否则阻塞等待。V操作(signal)用于释放一个单位资源（生产一个），对信号量进行加一操作，当信号量小于0，则唤醒一个等待该资源的进程(线程)。简单来说，设置n个商品，n > 0时，消费者可以用来消费， n <= 0时，消费者等待生产者生产。pthread_cond_signal 函数。pthread_cond_wait 函数。]]></description><category></category></item><item><title><![CDATA[Linux信号操作之PV实现原理代码分享]]></title><link>https://blog.youkuaiyun.com/snjshbs/article/details/144470661</link><guid>https://blog.youkuaiyun.com/snjshbs/article/details/144470661</guid><author>snjshbs</author><pubDate>Sat, 14 Dec 2024 14:56:57 +0800</pubDate><description><![CDATA[3、当执行ctrl +c 的时候，会停止子进程(避免僵尸进程)，然后删掉信号、删掉共享内存内容、再删掉共享内存，最后停止父进程的运行。1、父进程要永远优先子进程执行，fork函数之后，子进程和父进程是并行执行的，代码看起来是永远父进程，跟内核进程调度算法有关。2、PV 操作是通过控制信号灯的值，保护一个共享变量，当一个进程对共享变量进行操作时，其他的进程不能改变或影响其结果。// 对该信号量的操作， 取值：-1（代表P上锁），1（V解锁）unsigned short sem_num;]]></description><category></category></item><item><title><![CDATA[Linux并发之简单实现队列父子进程读写]]></title><link>https://blog.youkuaiyun.com/snjshbs/article/details/144347923</link><guid>https://blog.youkuaiyun.com/snjshbs/article/details/144347923</guid><author>snjshbs</author><pubDate>Mon, 09 Dec 2024 14:40:42 +0800</pubDate><description><![CDATA[【代码】Linux并发之简单实现队列父子进程读写。]]></description><category></category></item><item><title><![CDATA[Linux并发之简单实现管道父子进程通信]]></title><link>https://blog.youkuaiyun.com/snjshbs/article/details/144338902</link><guid>https://blog.youkuaiyun.com/snjshbs/article/details/144338902</guid><author>snjshbs</author><pubDate>Mon, 09 Dec 2024 09:54:33 +0800</pubDate><description><![CDATA[编写两个.c文件，一个文件对管道A读，对管道B写，注意：先读后写，不然会造成进程堵塞僵死。]]></description><category></category></item></channel></rss>