Python will get true threading support with the removal of the GIL (Global Interpreter Lock) in 3.13 (now available in the beta as an experimental option).

The GIL has long crippled Python’s threading capabilities, but will be getting true parallelism with the implementation of PEP 703.

What are you gonna do with real threads? 🤔

  • pelya@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    3 months ago

    The same exact thing I do with multiprocess Python, I’m not going to update all of my code.

    Multiprocess approach is arguably more robust, you can’t corrupt memory from another thread, because the only point of interaction you have with your other rpocesses is queue and semaphore.

    • Qutorial@lemmy.worldOP
      link
      fedilink
      arrow-up
      3
      ·
      3 months ago

      But with multiprocessing you’re paying extra cycles to serialize and deserialize with those data structures (plus the added cost of storing copies in multiple places), and processes are much heavier to spin up…

      • pelya@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        3 months ago

        Yeah, there is overhead. It’s not so critical for Python, because I am using it for scripting and prototyping, and when I need performance, I rewrite critical code parts in C++.

  • fubarx@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    3 months ago

    Just downloaded the free-threading RC version via pyenv. Looking forward to taking it for a spin.