QReadLocker Class Reference

[QtCore module]

该QReadLocker类是简化了锁定和解锁读写锁进行读访问一个方便的类。More…

Methods

  • __init__ (self, QReadWriteLock areadWriteLock)
  • QReadWriteLock readWriteLock (self)
  • relock (self)
  • unlock (self)

Special Methods

  • object __enter__ (self)
  • __exit__ (self, object type, object value, object traceback)

Detailed Description

该QReadLocker类是简化了锁定和解锁读写锁进行读访问一个方便的类。

QReadLocker的目的(和QWriteLocker)是简化QReadWriteLock锁定和解锁。锁定和解锁语句或异常处理代码很容易出错,难以调试。 QReadLocker可以在这样的情况下使用,以确保始终良好定义的锁的状态。

下面是一个使用QReadLocker锁定和解除锁定读写锁来读取一个例子:

  1. [QReadWriteLock]($docs-qreadwritelock.html) lock;
  2. [QByteArray](qbytearray.html) readData()
  3. {
  4. QReadLocker locker(&lock);
  5. ...
  6. return data;
  7. }

它等价于下面的代码:

  1. [QReadWriteLock]($docs-qreadwritelock.html) lock;
  2. [QByteArray](qbytearray.html) readData()
  3. {
  4. lock.lockForRead();
  5. ...
  6. lock.unlock();
  7. return data;
  8. }

QMutexLocker文档显示的例子里使用的储物柜对象大大简化了编程。


Method Documentation

  1. QReadLocker.__init__ (self, QReadWriteLock areadWriteLock)

构造一个QReadLocker和锁lock阅读。锁定将被解除时,QReadLocker被破坏。如果lock是零,QReadLocker什么都不做。

See also QReadWriteLock.lockForRead( ) 。

  1. QReadWriteLock QReadLocker.readWriteLock (self)

[

返回一个指针被传递给构造函数的读写锁。

  1. QReadLocker.relock (self)

重新锁定未锁定的锁定。

]($docs-qreadwritelock.html)

See also unlock( ) 。

  1. QReadLocker.unlock (self)

解锁与此相关的更衣柜锁。

See also QReadWriteLock.unlock( ) 。

  1. object QReadLocker.__enter__ (self)
  1. QReadLocker.__exit__ (self, object type, object value, object traceback)