Threadlardan Foydalanishning Kamchiliklari

Python threads.

SU

Threadlardan Foydalanishning Kamchiliklari

Threadlar quyidagi jihatlarda foydalanilmaydi:

  • Global Interpreter Lock (GIL) tufayli CPU bog'langan kod uchun yomon variant – quyida batafsil
  • Ular uzilib qolmaydi yoki o'chirilmaydi
  • Threadlar bilan yozilgan kodni tushunish va to'g'ri yozish qiyinroq
  • Osonlik bilan race condition (musobaqa holati) yaratish mumkin

Global Interpreter Lock (GIL) – bu Python obyektlarini himoya qiluvchi mutex. Bu shuni anglatadiki, GIL bir vaqtda bir nechta threadning Python bytecode'ini bajarishini oldini oladi. Shuning uchun threadlardan foydalanganda ular kompyuteringizdagi barcha CPU'larda bir vaqtning o'zida ishlamaydi.

Threadlar I/O yuklama dasturlari, tasvirni qayta ishlash va NumPy'ning raqamli hisoblashlari uchun juda yaxshi, chunki ular GIL bilan hech narsa qilmaydi. Agar siz bir nechta CPU'larda bir vaqtning o'zida jarayonlarni ishga tushirishni istasangiz, multiprocessing modulidan foydalaning. Siz multiprocessing moduli haqida keyingi bo'limda o'rganasiz.

Race condition – bu kompyuter dasturi biror voqealar ketma-ketligiga tayanib to'g'ri bajarilishi uchun kerak bo'lganda yuzaga keladi. Agar threadlaringiz biror narsani noto'g'ri tartibda bajarilsa, keyingi thread ishlamasligi mumkin va dastur xatoga uchraydi yoki kutilmagan tarzda ishlaydi.

Last updated on

On this page

Xato haqida xabar berish