zoukankan      html  css  js  c++  java
  • python 学习日记 第35天 并发——进程

    一、什么是进程?

      1. 进程(Process): 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统机构的基础

      2.进程的组成:

        a.代码段: 用来描述进程要完成那些功能以及如何完成

        b.数据段: 程序在执行过程中所需要使用的资源

        c.PCB(进程管理控制):记录进程的外部特征,描述进程的执行变化过程,系统可以用它来控制和管理进程,他是系统感知进程存在的唯一标志

      3.进程的三大基本状态:

        a.就绪状态(Ready):当进程已分配到除Cpu以外的所有必要资源,只要获得Cpu便可立即执行,称为就绪状态。

        b.执行状态(Running):当进程已获得处理机,该程序正在处理机上执行,此时称为执行状态

        c.阻塞状态(Blocked):正在执行的进程,由于某些原因无法执行的时候,便放弃处理机,处于阻塞状态,重新等待获取cpu

      4.进程的理论:

        a.   .sh  shell脚本文件

        b.   .out      linux系统中的可执行文件

        c.    .bat     批处理脚本文件

        d.    .lib      库文件

        e.    .dll      库

        f.     .exe    可执行文件

      5.进程的特殊状态----挂起状态:

        是指因为某种原因,进程放弃cpu,导致进程无法继续执行,此时进程被踢出内存

      6.进程中一些名词的解释:

        并发:是指在一段时间段内,所完成的任务叫做

        并行:是指在同一时间点下,能够执行任务的数量

        同步:是指前一段任务完成的情况下,才能执行后一段的任务

        异步:各自任务执行各自任务,相互不受影响

      7.python中关于进程中的模块:

        在python中,有一个multiprocessing内置模块,由python提供,主要用于多进程编程

        调用方法:

           1 from multiprocessing import Process 

    二、关于子进程的实践问题:

      1.如何创建一个子进程:

          

     1 from multiprocessing import Process
     2 
     3 
     4 def func():
     5     pass
     6 
     7 
     8 if __name__ == '__main__':
     9     p = Process(target=func)
    10     p.start()

        在该段代码中 ,p = Process(target = func)  这句话代表的是实例化一个子进程对象

                p.start()  表示开启次子进程

      2.进程中常用的方法:

        start,join

     1 from multiprocessing import Process
     2 import time
     3 
     4 def func():
     5     for i in range(500):
     6         time.sleep(0.01)
     7         print('儿子在这里')
     8 
     9 if __name__ == '__main__':
    10     p = Process(target=func)
    11     p.start()
    12     p.join()# 是让主进程等待子进程执行完。  现象:主进程执行到这句话,主进程阻塞住,等待子进程执行
    13     # time.sleep(1)
    14     for i in range(100):
    15         time.sleep(0.01)
    16         print('爸爸在这里')
    17 
    18 # 开启一个正常的子进程,父进程会等待子进程结束后,父进程也就是程序才结束
    19 # p.join()# 是让主进程等待子进程执行完。  现象:主进程执行到这句话,主进程阻塞住,等待子进程执行
    20 # 如何把父进程和子进程之间的关系变为同步或者异步?
    21 # 父进程执行join,就会变成同步,不执行join,父进程和子进程就是异步的关系
    22 # join必须放在start()后边

      3.进程中常用的属性:

    from multiprocessing import Process
    import time
    import os
    
    def func():
        print('这里是儿子,儿子的pid是%s'%(os.getpid()))
    
    if __name__ == '__main__':
        p = Process(target=func)
        p.start()
        p.name = 'alex'
        print('儿子的名字是%s'%p.name)
        print('儿子的pid是%s'%p.pid)
        print('儿子是不是守护进程?',p.daemon)
    
    
    # p.name   进程的名字
    # p.pid       进程的序号
    # p.daemon 看是否是守护进程
  • 相关阅读:
    CSS
    人物
    CSS
    CSS
    概念- 工业4.0
    C#正则表达式
    六月定律
    c#中实现登陆窗口(无需隐藏)
    c#中关于String、string,Object、object,Int32、int
    一个快速找第k+1小的算法
  • 原文地址:https://www.cnblogs.com/Chamster/p/9506632.html
Copyright © 2011-2022 走看看