线程进程要点

  • 子线程之间执行是无序的
  • 获取当前程序活动线程的列表
    thread_list = threading.enumerate()
  • 扩展:– 获取活动线程的个数
    print("1111-------", threading.active_count())
    -创建子线程
#name是给子线程重命名,daemon为True是在主线程结束时销毁子线程,销毁子线程需要时间的。args用来接收元组参数,kwargs用来接收字典参数
sing_thread = threading.Thread(target=sing, name = "", daemon = True, args = (), kwagrs = {})
  • 主线程会等待所有的子线程执行完成以后程序再退出

  • 总结: 主进程会等待所有的子进程执行完成以后程序再退出

  • 多线程可以共享全局变量,多进程不可以共享全局变量

join函数作用:

  1. 阻塞主进程,专注于执行多线程中的程序。

  2. 多线程多join的情况下,依次执行各线程的join方法,前头一个结束了才能执行后面一个。

  3. 无参数,则等待到该线程结束,才开始执行下一个线程的join。

  4. 参数timeout为线程的阻塞时间,如 timeout=2 就是罩着这个线程2s 以后,就不管他了,继续执行下面的代码。

互斥锁

1.# 互斥锁: 保证同一时刻只有一个线程去执行代码,其它线程没有抢到锁会等待
2.# 提示:加上互斥锁,那个线程抢到锁我们绝对不了因为,线程执行是无序
3.# 注意点: 线程同步和加上互斥锁把多任务瞬间该成单任务,性能会下降

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值