首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏刷题笔记

    2-9 彩虹瓶 (20 分)

    本文链接:https://blog.csdn.net/shiliang97/article/details/101155502 2-9 彩虹瓶 (20 分) ?

    1K30发布于 2019-11-08
  • 来自专栏Linux云计算网络

    算法导论2-9章补充几道题

    本篇博文意在对前几章中遗漏的,本人觉得有意思的习题当独拿出来练练手。 1、习题2-4,求逆序对,时间复杂度要求Θ(nlgn) 定义:对于一个有n个不同的数组A, 当i<j时,存在A[i]>A[j],则称对偶(i, j)为A的一个逆序对。 譬如:<2,3,8,6,1>有5个逆序对。 解题思路:归并排序的思想:逆序对的数量=左区间的逆序对+右区间的逆序对+合并的逆序对 代码如下: 1 #include <iostream> 2 #include <vector> 3 using namespace std

    82650发布于 2018-01-11
  • 来自专栏IT技术圈

    练习2-9 整数四则运算 (10分)

    本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。

    1.5K30发布于 2021-02-24
  • 来自专栏cwl_Java

    C++编程之美-数字之魅(代码清单2-9)

    代码清单2-9 ULONGLONG Count1InAInteger(ULONGLONG n) { ULONGLONG iNum = 0; while(n !

    25230编辑于 2022-11-30
  • 来自专栏韩曙亮的移动开发专栏

    【Android 进程保活】Android 进程优先级 ( 前台进程 | 可见进程 | 服务进程 | 后台进程 | 空进程 )

    文章目录 一、Android 进程优先级 二、前台进程 三、可见进程 四、服务进程 五、后台进程 六、空进程 一、Android 进程优先级 ---- Android 进程优先级 : ① 前台进程 > ② 可见进程 > ③ 服务进程 > ④ 缓存进程 > ⑤ 空进程 ; 关键优先级进程 : ① 活动进程 ; 高优先级进程 : ② 可见进程 , ③ 服务进程 ; 低优先级进程 : ④ 后台进程 , ⑤ 空进程 ; Android 系统中会尽量保证优先级高的进程的存在时间尽可能长 ; 如果资源不足 ( 这里的资源最主要的是内存 ) , 为了可以新建进程 , 以及重要进程的运行 , 系统会杀死一些低优先级进程 如弹出对话框 , 对话框是前台进程 , 后面被覆盖的 Activity 就变成了可见进程 ; 绑定在 可见 Activity 组件上的 Service 进程 , 也被称为可见进程 ; 可见进程也是很重要的进程 , 除非为了保证前台进程的运行 , 一般不会被回收 ; 四、服务进程 ---- ① 服务进程 : 调用 startService 方法启动的 Service 进程组件 , 就是服务进程 , 其没有与

    3.5K20编辑于 2023-03-29
  • 来自专栏c/c++学习与分享

    Linux:进程地址空间、进程控制(一.进程创建、进程终止、进程等待)

    创建子进程规则是:子进程与父进程共享代码,写时拷贝 进程调用fork,当控制转移到内核中的fork代码后,内核做: 分配新的内存块和内核数据结构给子进程 将父进程部分数据结构内容拷贝至子进程 复制父进程数据:新创建的子进程是父进程的副本,所以操作系统会复制父进程的部分数据结构内容到子进程,包括代码、数据、堆、栈等内容。 设置进程ID:操作系统为每个新进程分配一个唯一的进程ID(PID),用于在系统中唯一标识该进程。 添加到进程列表:新创建的进程会被添加到系统的进程列表中,以便操作系统可以对其进行管理和调度。 更新进程列表:操作系统会从进程列表中移除已终止的进程。 5.进程等待 5.1必要性 在Unix/Linux系统中,当子进程退出时,它的进程描述符仍然保留在系统中,直到父进程通过某种方式获取其退出状态。 在父进程中,wait 方法常被用来回收子进程的资源并获取子进程的退出信息,从而避免产生僵尸进程。 wait 函数允许父进程等待其子进程结束,并可以获取子进程的退出状态。

    1.2K00编辑于 2024-05-25
  • 来自专栏c/c++&&linux

    【Linux】Linux进程控制>进程创建&&进程终止&&进程等待&&进程程序替换

    1.进程创建 1.1 fork函数 在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。 新进程为子进程,而原进程为父进程 #include <unistd.h> pid_t fork(void); 返回值:自进程中返回0,父进程返回子进程id,出错返回-1 进程调用fork,当控制转移到内核中的 fork代码后,内核做: 分配新的内存块和内核数据结构给子进程 将父进程部分数据结构内容拷贝至子进程 添加子进程到系统进程列表当中 fork返回,开始调度器调度 当一个进程调用fork之后,就有两个二进制代码相同的进程 具体见下图: 1.3 fork常规用法 一个父进程希望复制自己,使父子进程同时执行不同的代码段。例如,父进程等待客户端请求,生成子进程来处理请求 一个进程要执行一个不同的程序。 shell建立一个新的进程,然后在那个进程中运行ls程序并等待那个进程结束 然后shell读取新的一行输入,建立一个新的进程,在这个进程中运行程序 并等待这个进程结束。

    4.3K10编辑于 2024-06-04
  • 来自专栏Python 学习

    day37(多进程)- 多进程、守护进程进程

    1.父进程中什么一个n = 100 p = Process(target=func) p.start() p.join() # 4.等待子进程结束 print('父进程号 :', os.getpid(), ',n值是', n) # 运算结果如下,证明力子进程和父进程之间的数据内存是完全隔离的 数据隔离的结果: 子进程号: 10428 ,n值是: 0 父进程号 1) print('p进程是否存活->', p_obj.is_alive()) 5.关于如何使用进程锁 # 本质上多进程的时候,阻塞其他进程,只允许一个进程操作 # # # 任何进程只要使用了同一个锁对象 import Process, Lock import time def action(pro, lock): # 上锁 # 本质上多进程的时候,阻塞其他进程,只允许一个进程操作 , lock): # 上锁 # 本质上多进程的时候,阻塞其他进程,只允许一个进程操作 print(pro, '进入了程序') lock.acquire() print

    1.3K00发布于 2019-07-27
  • 来自专栏c/c++学习与分享

    Linux:进程概念(二.查看进程、父进程与子进程进程状态详解)

    2.父进程与子进程 2.1介绍 在操作系统中,当一个进程(称为父进程)创建另一个新进程(称为子进程)时,父子进程之间建立了一种特殊的关系。 这种关系具有以下特点和行为: 父子关系: 子进程的父进程是创建它的进程,即父进程。 每个进程都有唯一的父进程。 PID关系: 子进程的PID(进程标识符)是由父进程调用fork()或类似系统调用创建的。 子进程的PPID(父进程标识符)与创建它的父进程的PID相同。 几乎所有进程都是由其他进程创建的,因为通常情况下,操作系统启动时会先创建一个初始进程(通常是init进程或systemd),然后其他进程都是由这些初始进程创建的。 下面是对这两个返回值的解释: 给父进程返回子进程的 PID:在父进程中,fork 返回新创建子进程进程 ID(PID),这个 PID 是子进程的标识符,父进程通过这个 PID 可以识别并操作子进程

    5.9K10编辑于 2024-05-07
  • 来自专栏csdn-nagiY

    【Linux】进程控制:理解什么是进程创建,进程终止,进程等待 | 进程替换

    一.进程创建 fork函数创建进程,新进程为子进程,原进程为父进程; fork函数包含在头文件 <unistd.h> 进程调用fork,当控制转移到内核中的fork代码后,内核做: 分配新的内存块和内核数据结构给子进程 将父进程部分数据结构内容拷贝至子进程 添加子进程到系统进程列表当中 fork返回,开始调度器调度 关于fork函数的返回值: 返回0给子进程 返回子进程的PID给父进程 创建失败,返回值 < 0 子进程和父进程共享 答案是父进程。子进程在退出时,会成为僵尸进程,需要父进程的回收。 那么父进程期望获得子进程退出时得哪些信息呢? 即在子进程退出前,父进程什么也不做,一直在等着子进程退出,此时父进程处于阻塞状态。 多进程进程替换  前面的例子是单进程的执行系统命令的进程替换,接下来我们实现一个多进程的执行自己命令的进程替换。

    1.1K10编辑于 2024-01-23
  • 来自专栏ephemerals__的技术专栏

    【Linux】进程(1)进程概念和进程状态

    三、Linux下进程基本操作 C语言函数获取当前进程标识符和父进程的标识符(PID): getpid(); //返回当前进程标识符,返回值类型是pid_t getppid(); //返回当前进程的父进程标识符 命令行输入kill -9 (进程标识符) 四、父进程和子进程 一个进程通过系统调用创建出的另一个进程称之为该进程的子进程,反之该进程称为其父进程。 子进程在创建成功后,fork函数会给子进程返回0,给父进程返回子进程的PID。为什么会给父子进程不同的返回值呢? 因为一个父进程可能会有多个子进程,给父进程返回子进程的PID,更方便父进程对子进程进行管理。而子进程如果想要知道父进程的PID,直接调用getppidh函数即可。 当父进程先死亡,子进程就会被1号进程领养,成为新的父进程,此时该子进程就被称作孤儿进程

    1.4K00编辑于 2025-03-16
  • 来自专栏oeasy教您玩转linux、python

    python0031_挂起进程_恢复进程_进程切换

    不断输出时间ctrl+c结束进程​编辑 我想看到 python3 这个进程 可能吗? foreground foreground(前台) fg 命令把 后台 进程放回 前台把挂起的进程重新又放到前台cpu又可以给这个进程用了​编辑但是这个我怎么知道他到后台是否暂停了呢? 重启进程 先将进程放回前台 再ctrl + c结束这个进程​编辑 最后重新运行 python3 show_time.py 这样硬盘中修改了的python文件 就会被作为新进程重新载入内存新修改就生效了这个 暂停 运行程序后 挂起进程等待一段时间恢复进程​编辑 还是从5开始 没有在后面偷偷跑 如果我就想让这个进程 在后台偷偷跑呢? 总结 进程前后台切换 ctrl + z 把当前进程切换到后台并暂停用 fg 可以把进程再切回前台用 bg 可以让进程在后台持续运行但是问题就是根本停不下来!

    4.5K00编辑于 2022-12-21
  • 来自专栏P_M_P学习笔记

    【Linux】Linux进程控制——进程创建、进程终止及进程等待详解

    进程创建 fork函数初识 在Linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。 将父进程部分数据结构内容拷贝至子进程 添加子进程到系统进程列表当中 fork返回,开始调度器调度 当一个进程调用 fork 之后,就有两个二进制代码相同的进程。 fork常规用法 一个父进程希望复制自己,使父子进程同时执行不同的代码段。例如,父进程等待客户端请求,生成子进程来处理请求。 一个进程要执行一个不同的程序。 ⭐进程等待 进程等待的必要性 在Linux进程提到过,子进程退出,父进程如果不管不顾,不读取子进程的退出信息,就可能造成“僵尸进程”的问题,进而造成内存泄漏。 如,子进程运行完成,结果对还是不对, 或者是否正常退出。 父进程通过进程等待的方式,回收子进程资源,获取子进程退出信息。

    3.4K10编辑于 2024-08-15
  • 来自专栏韩曙亮的移动开发专栏

    【Linux 内核】进程管理 - 进程优先级 ① ( 限期进程 | 实时进程 | 普通进程 | 进程优先级相关字段 )

    文章目录 一、进程分类 ( 限期进程 | 实时进程 | 普通进程 ) 二、进程优先级相关字段 一、进程分类 ( 限期进程 | 实时进程 | 普通进程 ) ---- Linux 进程 分为 3 种类型 , " 限期进程 " , " 实时进程 " , " 普通进程 " ; 从 " 进程优先级 " 角度对比 , 优先级从高到低分别是 : 限期进程 > 实时进程 > 普通进程 ; 限期进程 : 优先级为 -1 ; 实时进程 : 优先级为 1 ~ 99 ; 实时进程 中 优先级的数值越大 , 优先级越高 ; 普通进程 : 优先级为 100 ~ 139 ; 普通进程 中 优先级的数值越小 , 优先级越高 ; 在 " 普通进程 " 中 , 可以通过 修改 nice 字段的值 , 进而 修改 普通进程的优先级 , 计算公式如下 : 普通进程优先级 = \rm nice + 120 二、进程优先级相关字段 ---- 在 linux-5.6.18\include\linux\sched.h 头文件中 task_struct " 进程描述符 " 结构体 中定义了 进程优先级字段如下 : struct task_struct

    6.7K20编辑于 2023-03-30
  • 来自专栏登神长阶

    Linux进程——Linux进程进程优先级

    如果对前面Linux进程不太熟悉可以先阅读: Linux进程 本篇主要内容: 僵尸进程和孤儿进程 Linux进程优先级 1. 僵尸进程 僵尸进程就是处于僵尸状态下的进程! 当进程退出并且父进程(使用wait()系统调用,后面讲) 没有读取到子进程退出的返回代码时就会产生僵死(尸)进程 僵死进程会以终止状态保持在进程表中,并且会一直在等待父进程读取退出状态代码。 所以,只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程进入Z状态 僵尸状态就是Linux状态中的X死亡状态! 开个玩笑,孤儿进程是父进程在子进程退出之前就先退出了,此时的子进程就称为“孤儿进程” 但是前面刚刚讲过一个进程在死亡时,PCB的死亡信息必须被读取后,才会释放PCB,但是如果父进程已经退出了,子进程的 子进程的父进程退出了,子进程要被领养,变成孤儿进程,而通过视频我们发现孤儿进程全部被1号进程统一领养了。

    4.3K20编辑于 2024-06-14
  • 来自专栏南桥谈编程

    探索Linux下进程状态 | 僵尸进程 | 孤儿进程

    进程退出并且父进程(使用wait()系统调用,后面讲)没有读取到子进程退出的返回代码时就会产生僵死(尸)进程 僵死进程会以终止状态保持在进程表中,并且会一直在等待父进程读取退出状态代码。 孤儿进程 僵尸进程代码中是子进程先退出,父进程一直运行 在孤儿进程中,让父进程先退出,子进程一直运行 代码: #include<stdio.h> #include<sys/types.h> ,只剩下子进程,为什么父进程不会处于僵尸进程? 父进程也是bash的子进程,父进程结束后,它的父进程bash会将它回收掉,并且过程很快,所以父进程不会处于僵尸状态。 当父进程结束后,它的子进程的父进程变成1号进程,即操作系统 将父进程是1号进程进程叫做孤儿进程。 孤儿进程被1号i进程领养,当然要有进程回收喽。

    1.2K10编辑于 2024-04-02
  • 来自专栏C++开发

    【Linux网络编程】:守护进程,前台进程,后台进程

    1.守护进程 1.1前台进程??后台进程??守护进程?? 如果我们在Xshell上启动一个服务器程序,正常情况下是前台进程,加上&会变成后台进程。 1.3前台进程,后台进程,守护进程的区别: 特性 前台进程 后台进程 守护进程 终端依赖 必须绑定终端(TTY) 可脱离终端(但属于当前会话session) 完全脱离终端和会话session 用户交互 2.当有前台进程时,bash进程会被换到后台。此时输入的命令是给此时在运行的前台进程。当前运行的前台进程不接收处理输入的命令,所以不能执行命令。 2.概念解释: PPID:父进程。 1.守护进程脱离终端,是网络进行IO。 2.守护进程是孤儿进程。 问题1: 进程组的组长不能变成守护进程 创建子进程,父进程退出,子进程向后运行,子进程就不是进程组组长了。 问题2: 因为守护进程没有与终端关联,没有输入,输出。

    1.4K10编辑于 2025-02-04
  • 来自专栏仙士可博客

    php进程通信-进程信号

    快一个月没发博文了,之前都在深入研究php多进程tcp服务器,结果到现在也没搞出一个完美的解决方案,所以还是先发下这个月学到的东西吧 注意:本文所有内容均在linux环境下 一:进程信号对照 在php进程信号常量中 SIGUSR2 12 终止进程(用户自定义信号2) SIGUSR2 留给用户使用 SIGPIPE 13 终止进程(向一个没有读进程的管道写数据) Broken pipe SIGALRM 14 终止进程( SIGCHLD 17 忽略信号(当子进程停止或退出时通知父进程) SIGCHLD 子进程结束时, 父进程会收到这个信号. 缺省时这些进程会停止执行. SIGTTOU 22 停止进程(后端进程写终端) SIGTTOU 类似于SIGTTIN, 但在写终端(或修改终端模式、时收到. php //文件2 posix_kill(文件1进程, SIGCONT);//给进程发送继续信号 posix_kill(文件1进程, SIGUSR1);//给进程发送user1信号 首先文件1运行,再给文件

    2.2K10发布于 2019-12-18
  • 来自专栏CSDN文章

    僵尸进程与孤儿进程

    这样设计的目的主要是保证只要父进程想知道子进程结束时的状态信息,就可以得到 僵尸进程: 一个进程使用 fork 创建子进程,如果子进程退出,而父进程并没有调用 wait 或 waitpid 获取子进程的状态信息 ,那么子进程进程描述符仍然保存在系统中,这种进程称之为僵死进程。 孤儿进程: 一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程。孤儿进程将被 init 进程(进程号为1)所收养,并由 init 进程对它们完成状态收集工作。 孤儿进程是没有父进程进程,孤儿进程这个重任就落到了 init 进程身上,init 进程就好像是一个民政局,专门负责处理孤儿进程的善后工作。 这样子进程顺利终止(父进程仅仅给子进程收尸,并不需要子进程的返回值),然后父进程继续执行。这时的孙子进程由于失去了它的父进程(即是父进程的子进程),将被转交给Init进程托管。

    61650编辑于 2023-10-17
  • 来自专栏知识同步

    孤儿进程和僵尸进程

    linux基础 僵尸进程进程exit()退出之后,他的父进程没有通过wait()系统调用回收他的进程描述符的信息,该进程会继续停留在系统的进程表中,占用内核资源,这样的进程就是僵尸进程。 )); sleep(60); printf("parend finally..."); } } 孤儿进程 当一个进程正在运行时,他的父进程忽然退出,此时该进程就是一个孤儿进程 作为一个进程,需要找到一个父进程,否则这种进程在退出之后没人回收他的进程描述符,空耗内存。此时该进程会找到一个父进程,如果自己所在的进程组没人收养,那就作为init进程的子进程。 finally..."); } } 处置方式 孤儿进程会由init进程收养作为子进程,所以不会有什么危害;僵尸进程会占用进程号,以及未回收的文件描述符占用空间,如果产生大量的僵尸进程,将会导致系统无法分配进程号 $ ps -aux|grep Z 在理想情况下,可以通过kill命令将进程杀死该进程的父进程来结束僵尸进程。当然也要结合具体场景来对待。

    1.5K10编辑于 2022-12-26
领券