第7章-多任务线程+队列+文件夹创建

一、线程的实例化方法

1.通过函数方式:
threading模块中的Thread类有一个target参数,需要指定一个函数对象,创建的函数就是实现子线程的逻辑

2.通过类方式
自定义一个类并继承threading.Thread类,重写run()方法实现子线程的逻辑

3.区别:如果子线程较多,通过面向对象的变成方式便于管理代码;如果子线程较少,可以直接通过函数方式

二、函数方式

在这里插入图片描述

1、进程之间会进行资源抢占,谁先抢到执行谁
2、主线程会在子线程执行结束后再结束
在这里插入图片描述

  • thead.join()方法:会使对应的子线程先完整执行完,再执行其他的子线程或主线程,但要注意其位置要紧跟thread.start()之后
    在这里插入图片描述

  • thead.setDaemon()方法:守护线程,其参数为布尔值,不会等待子线程结束再执行其他的子线程或主线程,但要注意其位置必须要在thread.start()之前
    在这里插入图片描述

  • thread.enumerate()方法:查看当前存活的线程个数

三、类方式

在这里插入图片描述

四、资源竞争

在这里插入图片描述
注:第一个进程中的num做完+1还没来得及给num赋值,就被第二个进程抢占,导致最终结果产生了错误。

五、互斥锁和死锁

5.1互斥锁

当多个线程⼏乎同时修改某⼀个共享数据的时候,需要进⾏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值