• サぺル
    link
    fedilink
    Polski
    arrow-up
    1
    ·
    4 months ago

    To jest zastąpienie GIL przez bardziej rozdrobnioną synchronizację. Tak, żeby działały wątki i umożliwiały bardziej równoległe działanie kodu. Jednocześnie zapewnia się współdzielenie obiektów w wątkach bez synchronizacji. Jeśli dobrze zrozumiałem?

    • LackyOP
      link
      fedilink
      arrow-up
      1
      ·
      4 months ago

      Z grubsza przeskanowałem PEP oczami, ale z tego co mój skan wyłapał to mniej więcej do tego to się sprowadza. Dochodzi do tego oczywiście jeszcze kilka innych dużych zmian. Tymczasem wychodzą pierwsze problemy https://github.com/python/cpython/issues/111506

      • naurM
        link
        fedilink
        Polski
        arrow-up
        1
        ·
        edit-2
        4 months ago

        Doczytałem też, że usunęli podział na pokolenia w GC. Czyli pewnie muszą teraz skanować więcej obiektów przy odśmiecaniu pamięci.

        Ogólnie zarządzanie referencjami do obiektów w Pythonie jest strasznie upierdliwe. Rozszerzenia muszą to robić ręcznie i natywny kod potrafi być usiany tymi Py_INC/DECREFami.
        Debugowanie błędów w tych licznikach jest skomplikowane nawet bez wielowątkowości. Teraz będzie pewnie o rząd wielkości trudniej.