python——进程实现多任务

一.进程的状态:

  • 就绪态:运行的条件已经满足,正在等待cpu执行
  • 执行态:cpu正在执行其功能
  • 等待态:等待某些条件满足,例如一个程序sleep了,此时就处于等待状态

二. 使用进程实现多任务

import multiprocessing
import time


def test1():
    for i in range(5):
        print("----1----")
        time.sleep(1)


def test2():
    for i in range(5):
        print("----2----")
        time.sleep(1)


def main():
    p1 = multiprocessing.Process(target=test1)
    p2 = multiprocessing.Process(target=test2)

    p1.start()
    p2.start()


if __name__ == '__main__':
    main()

在这里插入图片描述

三.写时拷贝

写时拷贝: 指的是两个任务可以同时自由读取内存,但任意一个任务试图对内存进行修改时,内存就会复制一份提供给修改方单独使用,以免影响到其他的任务使用。

四.进程与线程的区别

进程:

  1. 能够完成多任务,比如在一台电脑上能够同时运行多个QQ
  2. 是资源分配的单位

线程:

  1. 能够完成多任务(轻量级),比如一个QQ中的多个聊天窗口,
  2. 是操作系统调度的单位
  3. 线程不能独立执行,必须依附进程

区别:

  1. 一个程序至少有一个进程,一个进程至少有一个线程
  2. 线程的划分尺度小于进程(资源比进程少),使得多线程程序的并发性高
  3. 进程在执行过程中拥有独立的内存单位,而多个线程共享内存,极大的提高了程序的运行效率

优缺点: 线程执行开销小,但不利于资源的管理和保护;而进程则相反。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值