• Python_多线程与多进程编程


    线程同步技术
    使用线程同步技术有两个原因:

    数据安全问题,多个线程去取同一个数据源中的数据,如果不加同步锁会导致数据的脏读问题。
    协作顺序问题,多个线程完成同一个任务时,线程之间应该有同步和交互来协调各个线程。
    Python的threading模块提供了多种用于线程同步的对象,在后面会一一介绍。

    3.1 Lock/RLock对象
    Lock是比较低级的同步原语,当被锁定以后不属于特定的线程。一个锁有两种状态:locked 和 unlocked。

    如果锁处于unlocked状态,acquire()方法将其修改为locked并立即返回
    如果锁已处于locked状态,则阻塞当前线程并等待其他线程释放锁,然在获取到了锁后将其修改为locked并立即返回。
    release()方法用来将锁的状态由locked修改为unlocked并立即返回,如果锁状态本就是unlocked,调用该方法会抛出异常.
    可重入锁RLock对象也是一种常用的线程同步原语,可以被同一个线程acquire()多次。

    当处于locked状态时,某线程拥有该锁
    当处于unlocked状态时,该锁不属于任何线程。
    RLock对象的acquire()/release()调用时可以嵌套,仅当最后一个或最外层的release()执行结束,锁才会被设置为unlocked状态


    ————————————————
    版权声明:本文为CSDN博主「ChanZany」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_41819729/article/details/105489655

    你有什么心态,就有什么样的人生。管不好自己的心态,注定你就是个弱者。
  • 相关阅读:
    各种类型的Dialog
    短信验证码的使用
    监听开机广播
    实现点击两次返回键退出
    Android 遮罩层效果--制作圆形头像
    Native方法的使用
    如何给数字添加分隔符
    自定义Toast
    Android px、dp、sp之间相互转换
    android:scrollbarStyle属性及滚动条和分割线覆盖问题
  • 原文地址:https://www.cnblogs.com/LQZ888/p/12705927.html
Copyright © 2020-2023  润新知