zoukankan      html  css  js  c++  java
  • 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

    你有什么心态,就有什么样的人生。管不好自己的心态,注定你就是个弱者。
  • 相关阅读:
    JAVA处理Clob大对象
    计院生活第二章 深入虎穴(上)
    我的2008
    Quartz入门到精通
    DOM4J使用教程
    JNI简介及实例
    《JavaScript凌厉开发 Ext详解与实践》3月5日开始上架销售
    计院生活第二章 深入虎穴(下)
    Access转Sql Server问题
    提高网站可用性的10个小技巧
  • 原文地址:https://www.cnblogs.com/LQZ888/p/12705927.html
Copyright © 2011-2022 走看看