day36进程理论\启动进程的两种方式

2020-08-27  本文已影响0人  荭鲤鱼与緑鲤鱼与驴

Ⅰ    什么是进程

    进程是一个程序运行的过程

Ⅱ    什么是程序

    程序就是存在硬盘上面的一堆代码文件

    py文件都是程序

Ⅲ    串行\并发\并行

    串行:多个任务依次运行

    并发:看起来像是同时运行的,本质上是一个cpu来回的切换

    并行:多个任务是真正的同时在运行,只有多个cpu才有并行的概念

Ⅳ    进程的状态

    就绪态

    运行态

    阻塞态

Ⅴ    优化程序效率的核心法则

    降低IO操作(硬盘IO,网络IO)

    IO操作优先级

    能从内存取的不从硬盘,能从本地的不从网络上取

Ⅵ    程序调用的两种方式:

    同步调用

    同步调用是以中国阻塞式调用

    可以形象理解为:考试,当一道题没做出来后,绝不会去做下一道题.即一段代码没有执行完毕,代码会一直等待,而不会执行下一段代码逻辑

    异步调用

    异步调用是一种非阻塞式的调用

    可以形象理解为:考试,当这道题没有解决时,可以跳过这道题去做后面的题,当有思路时,再返回做这道题

Ⅶ    开启进程的两种方式

方式一:

正常启动:

# 开启进程的方式一:

import os, time

print(os.getpid(), 'python第22行代码进程>>>')

from multiprocessing import Process

def tank(n, tag):

    print('%s>>>子进程' % tag)

    time.sleep(n)

    print('%s>>>子结束' % tag)

if __name__ == '__main__':

    p1 = Process(target=tank, args=(2, '子进程111111>'))

    p2 = Process(target=tank, args=(3, '子进程222222>'))

    p3 = Process(target=tank, args=(4, '子进程333333>'))

    p1.start()

    p2.start()

    p3.start()

    print('>>>>主进程>>>>')

方式一

非人类启动方式

import os, time

from multiprocessing import Process

def tank(m, tag):

    print('%s>>>子进程' % tag)

    time.sleep(m)

    print('%s>>>子结束' % tag)

if __name__ == '__main__':

    res = 1

    while True:

        p1 = Process(target=tank, args=(500, f'紫禁城>>>>>{res}'))

        res += 1

        p1.start()

方式二

# 开启进程的方式二:

import time,os

from multiprocessing import Process

class Myprocess(Process):

    def __init__(self,tag):

        super().__init__()

        self.tag = tag

                  # 函数提示信息  -> None

    def run(self) -> None:

        print('%s is running'%self.tag)

        time.sleep(3)

        print('%s is done'%self.tag)

if __name__ == '__main__':

    p1 = Myprocess('进程11111')

    p1.start()

    print('主进程>>>>>')

上一篇 下一篇

猜你喜欢

热点阅读