多线程学习笔记(二)锁的概念

 其实在多线程中锁的概念非常简单,就是为了让一个线程运行,其余线程等着。因为多线程会出现资源竞争的问题,为了解决这个问题,就是让子线程之间不会来回切换,从而提出了锁的概念。大家直接运行下面的程序就能明白其中的道理。

import time
import threading
#单线程需要的时间会更长
lock=threading.Lock()
def sing():
    """正在唱歌"""
    lock.acquire()#获得锁
    for i in range(5):
        print("正在唱歌")
        time.sleep(1)
    lock.release()#释放锁
def dump():
    """正在跳舞"""
    lock.acquire()  # 获得锁
    for i in range(5):
        print("正在跳舞")
        time.sleep(1)
    lock.release()  # 释放锁
def main():
    # 设置daemon=True会标记其为守护线程,如果剩下的线程只有守护线程时,整个python程序都会退出
    a=threading.Thread(target=sing,daemon=False)
    b=threading.Thread(target=dump,daemon=False)
    a.start()
    b.start()
    # while True:
    #     print(threading.enumerate())
    #     break
if __name__=="__main__":
    main()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值