# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2025, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , 2025. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-10-11 20:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: ko\n" "Language-Team: ko \n" "Plural-Forms: nplurals=1; plural=0;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.17.0\n" #: ../../howto/free-threading-python.rst:5 msgid "Python support for free threading" msgstr "" #: ../../howto/free-threading-python.rst:7 msgid "" "Starting with the 3.13 release, CPython has support for a build of Python" " called :term:`free threading` where the :term:`global interpreter lock` " "(GIL) is disabled. Free-threaded execution allows for full utilization " "of the available processing power by running threads in parallel on " "available CPU cores. While not all software will benefit from this " "automatically, programs designed with threading in mind will run faster " "on multi-core hardware." msgstr "" #: ../../howto/free-threading-python.rst:14 msgid "" "The free-threaded mode is working and continues to be improved, but there" " is some additional overhead in single-threaded workloads compared to the" " regular build. Additionally, third-party packages, in particular ones " "with an :term:`extension module`, may not be ready for use in a free-" "threaded build, and will re-enable the :term:`GIL`." msgstr "" #: ../../howto/free-threading-python.rst:20 msgid "" "This document describes the implications of free threading for Python " "code. See :ref:`freethreading-extensions-howto` for information on how " "to write C extensions that support the free-threaded build." msgstr "" #: ../../howto/free-threading-python.rst:26 msgid "" ":pep:`703` – Making the Global Interpreter Lock Optional in CPython for " "an overall description of free-threaded Python." msgstr "" #: ../../howto/free-threading-python.rst:31 msgid "Installation" msgstr "" #: ../../howto/free-threading-python.rst:33 msgid "" "Starting with Python 3.13, the official macOS and Windows installers " "optionally support installing free-threaded Python binaries. The " "installers are available at https://www.python.org/downloads/." msgstr "" #: ../../howto/free-threading-python.rst:37 msgid "" "For information on other platforms, see the `Installing a Free-Threaded " "Python `_, a " "community-maintained installation guide for installing free-threaded " "Python." msgstr "" #: ../../howto/free-threading-python.rst:41 msgid "" "When building CPython from source, the :option:`--disable-gil` configure " "option should be used to build a free-threaded Python interpreter." msgstr "" #: ../../howto/free-threading-python.rst:46 msgid "Identifying free-threaded Python" msgstr "" #: ../../howto/free-threading-python.rst:48 msgid "" "To check if the current interpreter supports free-threading, " ":option:`python -VV <-V>` and :data:`sys.version` contain \"free-" "threading build\". The new :func:`sys._is_gil_enabled` function can be " "used to check whether the GIL is actually disabled in the running " "process." msgstr "" #: ../../howto/free-threading-python.rst:53 msgid "" "The ``sysconfig.get_config_var(\"Py_GIL_DISABLED\")`` configuration " "variable can be used to determine whether the build supports free " "threading. If the variable is set to ``1``, then the build supports free" " threading. This is the recommended mechanism for decisions related to " "the build configuration." msgstr "" #: ../../howto/free-threading-python.rst:60 msgid "The global interpreter lock in free-threaded Python" msgstr "" #: ../../howto/free-threading-python.rst:62 msgid "" "Free-threaded builds of CPython support optionally running with the GIL " "enabled at runtime using the environment variable :envvar:`PYTHON_GIL` or" " the command-line option :option:`-X gil`." msgstr "" #: ../../howto/free-threading-python.rst:66 msgid "" "The GIL may also automatically be enabled when importing a C-API " "extension module that is not explicitly marked as supporting free " "threading. A warning will be printed in this case." msgstr "" #: ../../howto/free-threading-python.rst:70 msgid "" "In addition to individual package documentation, the following websites " "track the status of popular packages support for free threading:" msgstr "" #: ../../howto/free-threading-python.rst:73 msgid "https://py-free-threading.github.io/tracking/" msgstr "" #: ../../howto/free-threading-python.rst:74 msgid "https://hugovk.github.io/free-threaded-wheels/" msgstr "" #: ../../howto/free-threading-python.rst:78 msgid "Thread safety" msgstr "" #: ../../howto/free-threading-python.rst:80 msgid "" "The free-threaded build of CPython aims to provide similar thread-safety " "behavior at the Python level to the default GIL-enabled build. Built-in " "types like :class:`dict`, :class:`list`, and :class:`set` use internal " "locks to protect against concurrent modifications in ways that behave " "similarly to the GIL. However, Python has not historically guaranteed " "specific behavior for concurrent modifications to these built-in types, " "so this should be treated as a description of the current implementation," " not a guarantee of current or future behavior." msgstr "" #: ../../howto/free-threading-python.rst:91 msgid "" "It's recommended to use the :class:`threading.Lock` or other " "synchronization primitives instead of relying on the internal locks of " "built-in types, when possible." msgstr "" #: ../../howto/free-threading-python.rst:97 msgid "Known limitations" msgstr "" #: ../../howto/free-threading-python.rst:99 msgid "" "This section describes known limitations of the free-threaded CPython " "build." msgstr "" #: ../../howto/free-threading-python.rst:102 msgid "Immortalization" msgstr "" #: ../../howto/free-threading-python.rst:104 msgid "" "The free-threaded build of the 3.13 release makes some objects " ":term:`immortal`. Immortal objects are not deallocated and have reference" " counts that are never modified. This is done to avoid reference count " "contention that would prevent efficient multi-threaded scaling." msgstr "" #: ../../howto/free-threading-python.rst:109 msgid "" "An object will be made immortal when a new thread is started for the " "first time after the main thread is running. The following objects are " "immortalized:" msgstr "" #: ../../howto/free-threading-python.rst:112 msgid ":ref:`function ` objects declared at the module level" msgstr "" #: ../../howto/free-threading-python.rst:113 msgid ":ref:`method ` descriptors" msgstr "" #: ../../howto/free-threading-python.rst:114 msgid ":ref:`code ` objects" msgstr "" #: ../../howto/free-threading-python.rst:115 msgid ":term:`module` objects and their dictionaries" msgstr "" #: ../../howto/free-threading-python.rst:116 msgid ":ref:`classes ` (type objects)" msgstr "" #: ../../howto/free-threading-python.rst:118 msgid "" "Because immortal objects are never deallocated, applications that create " "many objects of these types may see increased memory usage. This is " "expected to be addressed in the 3.14 release." msgstr "" #: ../../howto/free-threading-python.rst:122 msgid "" "Additionally, numeric and string literals in the code as well as strings " "returned by :func:`sys.intern` are also immortalized. This behavior is " "expected to remain in the 3.14 free-threaded build." msgstr "" #: ../../howto/free-threading-python.rst:128 msgid "Frame objects" msgstr "" #: ../../howto/free-threading-python.rst:130 msgid "" "It is not safe to access :ref:`frame ` objects from other " "threads and doing so may cause your program to crash . This means that " ":func:`sys._current_frames` is generally not safe to use in a free-" "threaded build. Functions like :func:`inspect.currentframe` and " ":func:`sys._getframe` are generally safe as long as the resulting frame " "object is not passed to another thread." msgstr "" #: ../../howto/free-threading-python.rst:138 msgid "Iterators" msgstr "" #: ../../howto/free-threading-python.rst:140 msgid "" "Sharing the same iterator object between multiple threads is generally " "not safe and threads may see duplicate or missing elements when iterating" " or crash the interpreter." msgstr "" #: ../../howto/free-threading-python.rst:146 msgid "Single-threaded performance" msgstr "" #: ../../howto/free-threading-python.rst:148 #, python-format msgid "" "The free-threaded build has additional overhead when executing Python " "code compared to the default GIL-enabled build. In 3.13, this overhead " "is about 40% on the `pyperformance " "`_ suite. Programs that spend most" " of their time in C extensions or I/O will see less of an impact. The " "largest impact is because the specializing adaptive interpreter " "(:pep:`659`) is disabled in the free-threaded build. We expect to re-" "enable it in a thread-safe way in the 3.14 release. This overhead is " "expected to be reduced in upcoming Python release. We are aiming for an" " overhead of 10% or less on the pyperformance suite compared to the " "default GIL-enabled build." msgstr "" #: ../../howto/free-threading-python.rst:161 msgid "Behavioral changes" msgstr "" #: ../../howto/free-threading-python.rst:163 msgid "" "This section describes CPython behavioural changes with the free-threaded" " build." msgstr "" #: ../../howto/free-threading-python.rst:168 msgid "Context variables" msgstr "" #: ../../howto/free-threading-python.rst:170 msgid "" "In the free-threaded build, the flag " ":data:`~sys.flags.thread_inherit_context` is set to true by default which" " causes threads created with :class:`threading.Thread` to start with a " "copy of the :class:`~contextvars.Context()` of the caller of " ":meth:`~threading.Thread.start`. In the default GIL-enabled build, the " "flag defaults to false so threads start with an empty " ":class:`~contextvars.Context()`." msgstr "" #: ../../howto/free-threading-python.rst:180 msgid "Warning filters" msgstr "" #: ../../howto/free-threading-python.rst:182 msgid "" "In the free-threaded build, the flag " ":data:`~sys.flags.context_aware_warnings` is set to true by default. In " "the default GIL-enabled build, the flag defaults to false. If the flag " "is true then the :class:`warnings.catch_warnings` context manager uses a " "context variable for warning filters. If the flag is false then " ":class:`~warnings.catch_warnings` modifies the global filters list, which" " is not thread-safe. See the :mod:`warnings` module for more details." msgstr "" #~ msgid "Python experimental support for free threading" #~ msgstr "" #~ msgid "" #~ "Starting with the 3.13 release, CPython" #~ " has experimental support for a build" #~ " of Python called :term:`free threading`" #~ " where the :term:`global interpreter lock`" #~ " (GIL) is disabled. Free-threaded " #~ "execution allows for full utilization of" #~ " the available processing power by " #~ "running threads in parallel on available" #~ " CPU cores. While not all software" #~ " will benefit from this automatically, " #~ "programs designed with threading in mind" #~ " will run faster on multi-core " #~ "hardware." #~ msgstr "" #~ msgid "" #~ "**The free-threaded mode is " #~ "experimental** and work is ongoing to" #~ " improve it: expect some bugs and " #~ "a substantial single-threaded performance " #~ "hit." #~ msgstr "" #~ msgid "" #~ "For information on other platforms, see" #~ " the `Installing a Free-Threaded " #~ "Python `_, a " #~ "community-maintained installation guide for " #~ "installing free-threaded Python." #~ msgstr "" #~ msgid "" #~ "To check if the current interpreter " #~ "supports free-threading, :option:`python -VV" #~ " <-V>` and :data:`sys.version` contain " #~ "\"experimental free-threading build\". The " #~ "new :func:`sys._is_gil_enabled` function can " #~ "be used to check whether the GIL" #~ " is actually disabled in the running" #~ " process." #~ msgstr ""