美文网首页
进程 一

进程 一

作者: 吃可爱长大鸭 | 来源:发表于2021-03-13 21:42 被阅读0次

目录

1.进程测试
2.开启进程的两种方式
3.进程间内存相互独立
4.父进程等待子进程结束
5.process常用属性
6.僵尸进程
7.小结

1.进程测试

import os

import time
while True:
    time.sleep(0.5)
    print("hahaha")
    print("self", os.getpid()) #获取自己的进程id
    print("parent",os.getppid())  #parent 获取父进程的id

2.开启进程的两种方式

from multiprocessing import Process
import os


#
def task(name):
    print(name)
    print("self",os.getpid())
    print("parent", os.getppid())
    print("task run")

#  windows创建子进程时  子进程会将父进程的代码加载一遍  导致重复创建子进程
#  所以一定要将 创建子进程的代码放到main的下面
if __name__ == '__main__':
    print("self", os.getpid())
    print("parent", os.getppid())
    p = Process(target=task, name="这是子进程!",kwargs={"name":"bgon"})  # 创建一个表示进程的对象  但并不是真正的创建进程
    p.start()  # 给操作系统发送通知 要求操作系统开启进程


# 创建进程的第二种方式  继承Process  覆盖run方法
# 在子进程启动以后会自动执行run方法
# 其优势是 可以自定义 进程的属性和行为 来完成一些额外任务 例如下载
# class MyProcess(Process):
#
#     def __init__(self,url):
#         self.url = url
#         super().__init__()
#
#     # 子类中的方法  只有run会被自动执行
#     def run(self):
#         print("下载文件...." , self.url)
#         print(" run run run!")
#
#     def task(self):
#         pass
#
# def task():
#     print(123)

# if __name__ == '__main__':
#     p = MyProcess("www.baidu.com/xx.mp4")
#     p.start()

3.进程间内存相互独立

from multiprocessing import Process

import time
a = 1000000000000

def task():
    global a
    print(id(a))
    a = 0
    print("子进程的",a)

if __name__ == '__main__':
    print(id(a))
    p = Process(target=task)
    p.start() # 给操作系统发送请求后 代码继续往下运行 至于子进程 什么时候创建 什么是执行 都跟当前进程没关系

    time.sleep(1)
    print("自己的",a)

# 子进程中的数据修改 不会影响父进程

4.父进程等待子进程结束

import time
from multiprocessing import Process

# def task():
#     print("上传文件....")
#     time.sleep(3)
#     print("上传结束...")
#
#
# # [进程1,进程2,进程3]
#
# if __name__ == '__main__':
#     p = Process(target=task)
#     p.start()
#
#     p.join() # 本质上  是提高了子进程优先级   当CPU在切换时 会优先切子进程
#
#     print("上传文件成功!")

def task(num):
    print("我是%s号 进程" % num)
    time.sleep(2)
    print("=========")

if __name__ == '__main__':
    start_time = time.time()
    ps = []
    for i in range(3):
        p = Process(target=task,args=(i,))
        p.start()
        # print("----")
        ps.append(p)

    for p in ps:
        p.join()

    print(time.time()-start_time)
    print("over")

5.process常用属性

from multiprocessing import  Process

import  time
def task():
    time.sleep(3)
    print("执行完毕!")


if __name__ == '__main__':

    p = Process(target=task,name="alex")
    p.start()
    print(p.name)

    # time.sleep(1)
    # print(p.is_alive())
    #
    # p.terminate()
    #
    # print(p.is_alive())

    p.terminate()# 终止这个进程
    print(p.pid)
    p.daemon  # 守护进程

6.僵尸进程

import  time
from multiprocessing import  Process
def task1():
    print("子进程 run")

if __name__ == '__main__':
    for i in range(10):
        p = Process(target=task1)
        p.start()

    time.sleep(100000)

7.小结

1. 并发编程
    让你的程序可以同时处理多个任务

2.并发的基石是 多道技术
    空间复用: 同一时间 内存存储了多个应用程序
             不同应用程序之间的内存是相互独立的
    时间复用: 当一个程序遇到了IO操作时 会切换到其他应用程序  ,以此来提高CPU的利用率

    多道技术的缺点: 当应用程序都是计算任务时 切换反而降低效率 (但是必须得切 才能保证多任务并发)


3.并发 与 并行
    并发 多个事件 同时发生, 也称之为伪并行
    并行 多个事件 同时进行,

    阻塞和非阻塞 指的是程序的状态
    就绪  运行  阻塞


4.两种使用进程的方式
    1.直接创建Process对象 指定target参数
    2.继承Process 覆盖run方法

5.join函数
    提高优先级 使 父进程等待子进程结束


6.孤儿进程与僵尸进程路径了解

相关文章

  • 进程(一):什么是进程

    进程是运行在 Linux 中的程序的一个实例。当我们在 Linux 中执行一个程序时,系统会为这个程序创建特定的环...

  • 进程管理(一)进程操作

    进程创建 、进程执行映像和加载、进程运行(进程调度)、进程间的互斥与同步、进程间通信、进程终止 1、进程创建 PC...

  • 进程 一

    目录 1.进程测试 2.开启进程的两种方式 3.进程间内存相互独立 4.父进程等待子进程结束 5.process常...

  • Android 五种进程的管理

    安卓有几种进程? 前台进程 可见进程 服务进程 后台进程 空进程 前台进程 用户当前操作所必需的进程。如果一个进程...

  • 进程,进程,进程

    1. 进程是具有独立功能的程序关于某个数据集合的一次运行过程。(1)程序本身是静态的,是没有生命周期的,只有运行起...

  • 进程操作

    一、进程创建 进程树 父进程创建若干子进程,子进程再创建其子进程,依次类推,构成进程树。进程的调度,其实就是在进程...

  • Activity之Service

    一、五种进程 前台进程 可视进程 服务进程 后台进程 空进程 (前三种进程一般不会被杀死) 二、Service生命...

  • 进程状态

    一般来说,进程状态有五种形式: 前台进程 可见进程 服务进程 后台进程 空进程 前台进程用户当前操作所必需的进程。...

  • Android基础知识总结(四)

    31.Android 进程 一般大体分为前台进程,后台进程,可见进程,服务进程,空进程这五大进程。其中空进程优先级...

  • 进程管理

    一、进程(Process) 进程:运行的程序;进程编号:PID; 二、创建进程 三、进程优先级 四、进程内存 五、...

网友评论

      本文标题:进程 一

      本文链接:https://www.haomeiwen.com/subject/nshfcltx.html