mirror of
https://github.com/python/cpython.git
synced 2026-04-14 07:41:00 +00:00
[3.13] gh-142518: Define lock-free and per-object lock (GH-144548) (#144707)
(cherry picked from commit 12dbae4c02)
This commit is contained in:
parent
a5b1952d24
commit
05c9474ed9
1 changed files with 20 additions and 0 deletions
|
|
@ -882,6 +882,16 @@ Glossary
|
|||
to locks exist such as queues, producer/consumer patterns, and
|
||||
thread-local state. See also :term:`deadlock`, and :term:`reentrant`.
|
||||
|
||||
lock-free
|
||||
An operation that does not acquire any :term:`lock` and uses atomic CPU
|
||||
instructions to ensure correctness. Lock-free operations can execute
|
||||
concurrently without blocking each other and cannot be blocked by
|
||||
operations that hold locks. In :term:`free-threaded <free threading>`
|
||||
Python, built-in types like :class:`dict` and :class:`list` provide
|
||||
lock-free read operations, which means other threads may observe
|
||||
intermediate states during multi-step modifications even when those
|
||||
modifications hold the :term:`per-object lock`.
|
||||
|
||||
loader
|
||||
An object that loads a module.
|
||||
It must define the :meth:`!exec_module` and :meth:`!create_module` methods
|
||||
|
|
@ -1139,6 +1149,16 @@ Glossary
|
|||
<faq-argument-vs-parameter>`, the :class:`inspect.Parameter` class, the
|
||||
:ref:`function` section, and :pep:`362`.
|
||||
|
||||
per-object lock
|
||||
A :term:`lock` associated with an individual object instance rather than
|
||||
a global lock shared across all objects. In :term:`free-threaded
|
||||
<free threading>` Python, built-in types like :class:`dict` and
|
||||
:class:`list` use per-object locks to allow concurrent operations on
|
||||
different objects while serializing operations on the same object.
|
||||
Operations that hold the per-object lock prevent other locking operations
|
||||
on the same object from proceeding, but do not block :term:`lock-free`
|
||||
operations.
|
||||
|
||||
path entry
|
||||
A single location on the :term:`import path` which the :term:`path
|
||||
based finder` consults to find modules for importing.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue