Python中的多线程(超级详细)

程序代码怎么产生新线程呢?

应用程序必须 通过操作系统提供的 系统调用,请求操作系统分配一个新的线程。

python3 将 系统调用创建线程 的功能封装在 标准库 threading 中。

大家来看下面的一段代码:

print('主线程开始')
from threading import Thread
import time

def child_thread(next):
    print(f'子线程{next}开始')
    time.sleep(1)
    print(f'子线程{next}结束')
    time.sleep(1)

for each in range(5):
    thread = Thread(target=child_thread,args=(f"{each}"))
    thread.start()
    thread.join()

print('主线程结束')

运行结果为:
在这里插入图片描述

创建了一个Thread实例对象,其中,Thread类的初始化参数 有两个
target参数 是指定新线程的 入口函数, 新线程创建后就会 执行该入口函数里面的代码,
args 指定了 传给 入口函数threadFunc 的参数。 线程入口函数 参数,必须放在一个元组里面,里面的元素依次作为入口函数的参数。
注意,上面的代码只是创建了一个Thread实例对象, 但这时,新的线程还没有创建。
要创建线程,必须要调用 Thread 实例对象的 start方法 。也就是执行完下面代码的时候新的线程才创建成功,并开始执行 入口函数threadFunc 里面的代码。
有的时候, 一个线程需要等待其它的线程结束,比如需要根据其他线程运行结束后的结果进行处理。
这时可以使用 Thread对象的 join 方法

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wxlo0.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值