Skip to main content

ProcessLock

Python全局进程锁,文件锁!

安装

pip install ProcessLock

使用

from ProcessLock import ProcessLock

p_lock = ProcessLock()

p_lock.acquire()
try:
    # doing..
    print(p_lock.locked())
finally:
    p_lock.release()

用法和普通的锁一样,acquire、release、locked,唯一的区别是这个锁不需要传参,可以通过设置锁的id来在同一机器上获取到同一把锁

进程1

    from ProcessLock import ProcessLock

    p_lock = ProcessLock(id="lock_name")

    p_lock.acquire()

进程2

    from ProcessLock import ProcessLock

    p_lock = ProcessLock(id="lock_name")

    # True
    print(p_lock.locked())

    # is wait
    p_lock.acquire()

在两个进程中因为都指定了锁的id为 lock_name,所以这两个变量其实是同一把锁,其中一把抢到锁,另外一个会无限等待,直到对方释放锁或者对方所在进程结束.

进程1

    from ProcessLock import ProcessLock

    p_lock = ProcessLock(id="lock_name")

    p_lock.acquire()

进程2

    from ProcessLock import ProcessLock

    p_nowait_lock = ProcessLock(id="lock_name", wait=False)

    # True
    print(p_nowait_lock.locked())

    # is raise AlreadyLocked Err
    p_nowait_lock.acquire()

如果把锁的参数 wait 设置为 False 表示获取锁的时候不进行等待,如果锁不可用直接抛出 AlreadyLocked 异常

这个锁除了是传统意义上的锁的作用,也是文件锁,用途之一是防止不同的程序同时操作同一文件.

Metadata

Release files for ProcessLock 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ProcessLock 1.0.3
File Size Uploaded
processlock-1.0.3.tar.gz 10.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ProcessLock 1.0.3
File Interpreter ABI Platform
ProcessLock-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 20.7 kB

Release files / processlock-1.0.3.tar.gz

Download URL processlock-1.0.3.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
77c5c1ab16100ada9bc298943b22a10146357150ae5709feaf92763025fba979
BLAKE2b-256 checksum
How to use checksums
d1e53518710abfcd50455d239c2b115bb856b83b0f36ebc2b1a26a6239f17191
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.11

Release files / ProcessLock-1.0.3-py3-none-any.whl

Download URL ProcessLock-1.0.3-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c216fa2cc6862f19a3155a81b02b6088074d29177d485ebb042ce17bbc58f654
BLAKE2b-256 checksum
How to use checksums
965d893c4d3196982fa91fa3412d1a956545e8cbab7eb60bde60e85e2edef06a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.11

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page