代码分析
文章平均质量分 60
大大枫
开开心心每一天(*^v^*)/
展开
-
【代码分析】初学解惑C++:函数适配器
我们定义了一个仿函数类,该类很简单,就是把传入的flag,直接返回。该适配器的功能是在原有功能的基础上,取反。protected:public://重载了括号,所以RealTrueAdaptorNot(arg),arg的值给了opt(x)的x,又传给了flagreturn!opt(flag);只要类继承了my_unary_function类,就可以被下面的AdaptorNot适配。原创 2023-09-10 03:51:59 · 279 阅读 · 0 评论 -
代码分析:waitpid的使用,非阻塞轮回检测技术
也就是说:我希望子进程退出能够被我父进程检测到,同时我又不希望我父进程处于阻塞等待,也就是父进程不希望自己什么事都不可以做,只等子进程退出返回;使用while循环保持检测,直到子进程退出。阻塞本质就是:调用该函数的父进程由在运行队列被放入到了等待队列中等待,同时修改进程状态为S。该参数设置:一般设置为WNOHANG:表示为父进程是以非阻塞的方式等待子进程;waitpid返回的本质也就是:将该父进程从等待队列拿到运行队列中执行;wait函数的作用是父进程调用,等待子进程退出,回收子进程的资源;原创 2023-08-06 21:54:25 · 189 阅读 · 0 评论 -
代码分析:循环创建N个子进程——为什么最后一个属于父进程?
故在这个过程中 i 值还会继续发生变化,根据写时复制技术,当父进程要对 i 值进行改动时,操作系统会创建 i 值所在页面的副本,然后将这个副本映射到相应需要对页面进行修改的进程的地址空间,代码中的break:创建出的子进程并不会并发地和父进程一起继续执行余下的for循环语句,而是跳出循环。黑马C/C++ 2018年32期代码分析。,与子进程所映射的页面的 i 值无关。由于创建子进程之后,原创 2023-08-06 15:30:31 · 91 阅读 · 0 评论