cy-rwlock 1.9.1

Creator: coderz1093

Last updated:

Add to Cart

Description:

cyrwlock 1.9.1

RwLock: Reader-Writer lock
Introduction
We can simply protect a shared resource by a lock. But the performance is not
good because each reader should run one-by-one.
A Reader-Writer lock can improve the performance by let readers running
simultaneously.
By the way, a writer should wait until all readers done.
In a frequently read situation, a new reader after the writer can also increase
the read count, let read count never decrease to 0.
This will starve writer.
RwLock:

Let readers running simultaneously.
Exclude "multiple readers" and each writer.
provide a flag "write_first" to prevent starve writer.

After 1.6.0, RwLock can support multi-thread(default) and multi-process.
For multi-process scenario, use rwlock = RwLock(cross_process=True)
Version control

cy-rwlock XX.YY.ZZ

XX.YY match the latest git tag.
ZZ will increase automatically when new commit appear in master branch.
XX: Update when change architecture
YY: Update when add or modify some features
ZZ: Update when bugfix or minor changes.



Usage
Install

pip install cy_rwlock
download latest version from https://pypi.org/project/cy_rwlock/#files

Example

from rwlock import RwLock

rwlock = RwLock()

### READER
rwlock.acquire_r()
# read...
rwlock.release_r()

# OR
with rwlock.lock_r():
# read...

### WRITER
rwlock.acquire_w()
# write...
rwlock.release_w()

# OR
with rwlock.lock_w():
# write...

Unittest

local(windows)

run scripts\run.bat


github

auto run when push



Deploy

PyPI version

convertd from git tag

see setup.py: convert_version()




local(windows)

run scripts\deploy.bat


github -> PyPI

When release in github

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.