我对读写锁有点不确定,只需要有人检查一下有关读写锁的这些事实是否正确。

一般而言,这是指数据库。

读锁:

  • 多个线程可以同时获取多个读锁。
  • 当线程在行/表上具有读取锁时,没有线程可以更新/插入/删除该表中的数据。 (即使试图写数据的线程不需要写锁定。)
  • 行/表不能同时具有读取和写入锁定。

  • 写锁:
  • 当行/表具有写锁时,如果另一个线程/线程中实现了读锁,则不能被其他线程读取;但是,如果未实现读锁(即简单的Select查询),则可以被其他线程读取。

    感谢您的澄清。我无法在互联网上找到对这些陈述的直接断言。

    最佳答案

    数据库管理理论中,锁定用于实现多个数据库用户之间的隔离。这是缩写ACID(原子性,一致性,隔离性,耐久性)中的“I”。 TX(事务)将锁定应用于数据,这可能会阻止其他TX在TX的生命周期内访问相同的数据。

    简单锁定:可以请求两种主要类型的锁定:

  • 共享锁:读取锁,即任何其他TX都可以读取但不能写入
  • 排他锁:写入锁,即其他TX均无法读取或写入

  • 多重锁定:两阶段锁定(2PL)是一种并发控制方法,可确保序列化。
  • 增长/扩展/第一阶段:获取锁,并且不释放锁。
  • 收缩/收缩/第二阶段:释放锁,并且不获取任何锁。
  • 10-06 06:01