zoukankan      html  css  js  c++  java
  • 进程

    进程: 

    进程是正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。

    开启进程的方式:

    第一种 

    from multiprocessing import Process
    def task(name):
    pass
    if __name__ == '__main__':
    p=Process(target=task,args=('egon',))
    p.start()
    第二种:
    class MyProcess(Process):
    def __init__(self,name):
    super(MyProcess,self).__init__()
    self.name=name
    def run(self):
    pass
    if __name__ == '__main__':
    p=MyProcess('egon')
    p.start()
     

     

    关于创建的子进程,UNIX和windows

    1. 在UNIX中该系统调用是:fork,fork会创建一个与父进程一模一样的副本,二者有相同的存储映像、同样的环境字符串和同样的打开文件

    (在shell解释器进程中,执行一个命令就会创建一个子进程)

    2. 在windows中该系统调用是:CreateProcess,CreateProcess既处理进程的创建,也负责把正确的程序装入新进程。

    对比unix和windows

      1.相同的是:进程创建后,父进程和子进程有各自不同的地址空间(多道技术要求物理层面实现进程之间内存的离),任何一个进程的在其地址空间中的修改都不会影响到另外一个进程。

      2.不同的是:在UNIX中,子进程的初始地址空间是父进程的一个副本,提示:子进程和父进程是可以有只读的共享内存区的。

    但是对于windows系统来说,从一开始父进程与子进程的地址空间就是不同的。

    进程之间空间隔离:
    进程之间空间互相隔离,在子程序的内存空间不影响父级程序
    对于unix中的僵尸进程与孤儿进程:
    僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符
      仍然保存在系统中。这种进程称之为僵死进程。 

    孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。

    孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

     

     

  • 相关阅读:
    N++ 道ASP.NET面试题
    Console-算法:fun1(do while)
    软件业:印度比中国强在哪
    印度软件业崛起的奥妙
    算法目录
    scala目录
    scala命令
    Spark目录
    Ubuntu目录
    Java核心技术卷二部分笔记
  • 原文地址:https://www.cnblogs.com/tianyu529/p/8930923.html
Copyright © 2011-2022 走看看