c++主线程等待子线程结束_简单明了的 Python 多线程来了 | 原力计划

6eaf64d18983c9a691648a2607181dc5.gif ea8cb095eb12aec3be15eb79ba7036c5.png 作者 | 万里羊 责编 | 王晓曼 出品 | CSDN博客 3017421ef293def38693cdc6437788dc.png 线程和进程   计算机的核心是CPU,它承担了所有的计算任务,就像是一座工厂在时刻运行。 如果工厂的资源有限,一次只能供一个车间来使用,也就是说当一个车间开工时其它车间不能工作,也就是一个CPU一次只能执行一个任务。 进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。 当然一个车间还有很多工人,他们互相协同完成一个工作;而线程就好比工厂的工人,一个进程可以包含多个线程。 线程(Thread)也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位。线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。 fd3f67af3fba48fd375e1f667cde4bd9.png 多线程与多进程   通俗易懂的理解就是:
多进程:允许多个任务同时进行
多线程:允许单个任务分成不同的部分运行
Python多线程的实现 Python3 通过两个标准库 thread(python2中是thread模块)和 threading 提供对线程的支持。 thread 提供了低级别的、原始的线程以及一个简单的锁,它相比于 threading 模块的功能还是比较有限的。 threading:
import threading #导入threading库import timedef run(n):
    print("task", n)
    time.sleep(1) #延时一秒
    print('2s')
    time.sleep(1)
    print('1s')
    time.sleep(1)
    print('0s')
    time.sleep(1)if __name__ == '__main__':
    t1 = threading.Thread(target=run, args=("t1",))#创建线程1,取名为t1
    t2 = threading.Thread(target=run, args=("t2",))#创建线程2,取名为t2
    t1.start() #开启线程t1
    t2.start() #开启线程t2
输出结果:
task t1
task t22s2s1s1s0s0s
可以看出先开启了线程t1,在开启t2然后每隔一秒打印数据。 e90dc85af05c95ecc2906d3c500d0315.png 自定义线程   通过继承threading.Thread来自定义线程类,其本质是重构Thread类中的run方法:
import threadingimport timeclass MyThread(threading.Thread):def __init__(self, n):
        super(MyThread, self).__init__()  # 重构run函数必须要写
        self.n = ndef run(self):
        print("task", self.n)
        time.sleep(1)
        print('2s')
        time.sleep(1)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值