前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python多线程详解

Python多线程详解

作者头像
Yuou
发布2022-09-26 15:39:23
3150
发布2022-09-26 15:39:23
举报
文章被收录于专栏:乱七八糟技术日常

多任务的介绍

  • 多任务指的是在同一之间内执行多个任务
  • 并发
    • 在一段时间内交替的去执行多个任务,例如单核的CPU处理多任务,操作系统要让各个任务交替执行。
    • 前提是任务量大于CPU的核数
  • 并行
    • 在一段时间内真正的同时一起执行多个任务
    • 对于多核心CPU处理多任务,操作系统会给CPU的每个内核安排一个执行任务,多个内核是真正的一起同时执行多个任务

进程的介绍

如何在程序中实现多任务的方式?

  • 进程的概念:进程(Process)是资源分配的最小单位,它是操作系统进行资源分配和调度运行的基本单位,通俗理解就是一个正在运行的程序就是一个进程。

Python中,想要实现多任务可以通过多线程来完成。

  1. 操作系统会优先创建一个主进程->然后在创建一个子进程

进程的创建步骤

  • target: 执行的任务名称,这里指的是函数名(方法名)
  • name: 进程名字
  • group: 进程组,目前只能使用None
代码语言:javascript
复制
multiprocessing.Process(target=任务名,name=进程运行名称,group=进程组)
代码语言:javascript
复制
#!/usr/bin/python3
import multiprocessing
import time
def sing():
    for i in range(3):
        print("唱歌")
        time.sleep(0.5)


def dance():
    for i in range(3):
        print("跳舞")
        time.sleep(0.5)

if __name__ == '__main__':
    # 指定此进程的处理函数
    targets1 = multiprocessing.Process(target=sing)
    targets2 = multiprocessing.Process(target=dance)
    targets1.start()
    targets2.start()

执行带有参数的任务

  • args:以元祖的方式给任务传输参数
  • kwargs: 以字典的方式给任务传参
代码语言:javascript
复制
import multiprocessing
import time
def sing(number):
    for i in range(number):
        print("唱歌")
        time.sleep(0.5)


def dance(number):
    for i in range(number):
        print("跳舞")
        time.sleep(0.5)

if __name__ == '__main__':
    # 指定此进程的处理函数
    targets1 = multiprocessing.Process(target=sing,args=(6,))

    # 使用字典给指定传参
    targets2 = multiprocessing.Process(target=dance,kwargs={'number':4})
    targets1.start()
    targets2.start()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 多任务的介绍
  • 进程的介绍
  • 进程的创建步骤
  • 执行带有参数的任务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档