当前位置: Python基础教程 > 15-多任务-多线程 > 阅读正文

python多任务的概念

2021.6.30.   542 次   958字

多任务, 是操作系统的能力, 能同一时间内运行多个程序

更多关于多任务的概念, 请学习操作系统, 本节将以python演示多任务与单任务的区别 ( 实现多任务有多种方式, 这里是线程方式 )

单任务程序

一个简单的程序, 唱歌5秒, 跳舞5秒, 单任务状态下, 将会需要10秒

import time


def sing():
    """唱歌5秒"""
    for i in range(5):
        print("---正在唱歌---")
        time.sleep(1)


def dance():
    """跳舞5秒"""
    for i in range(5):
        print("---正在跳舞---")
        time.sleep(1)


def main():
    sing()
    dance()


if __name__ == '__main__':
    main()

在上面这个程序中, 前面没讲过的,

  • range() 函数, 可以指定循环次数
  • time.sleep(n) ,程序( 线程 )暂停n秒
  • 类, 方法的前后, 空2行, 否则pycharm会提示警告

多任务程序

以多任务执行上面的程序, “唱歌5秒”, “跳舞5秒”, 实际用时还是5秒

import threading
import time


def sing():
    """唱歌5秒"""
    for i in range(5):
        print("---正在唱歌---")
        time.sleep(1)


def dance():
    """跳舞5秒"""
    for i in range(5):
        print("---正在跳舞---")
        time.sleep(1)


def main():
    t1 = threading.Thread(target=sing)
    t2 = threading.Thread(target=dance)
    t1.start()
    t2.start()


if __name__ == '__main__':
    main()

自行观察main函数中代码的区别, 但本节并不介绍多线程代码, 仅演示多任务与单任务区别.

ps: 这里区分一下, 并行与并发是不同概念, 并行是真正的多任务, 每个任务都单独占有一个cpu, 而并发是”假”的多任务, 多个任务同时占用一个cpu, 但只要时间片足够小, 用户体验出来像是在”同时运行”。并行是真的在同时执行, 并发是假的同时执行

ps: 在cpu中, 可以分为单核cpu和多核cpu, 多核其实是多个单核芯片焊接在一个芯片上, 也许是”多个cpu”念着怪异, 一直以来叫多核cpu

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群