Assalomu alaykum, e'tibor uchun rahmat.
Gap shundaki, multithreading aslida I/O uchun ishlab chiqilgan. CPU-bound uchun esa multiprocessing. Maqolada multithreading CPU-bound uchun deganimning sababi, agar multiprocessing deganimda unda process nima, threaddan qanday farq qiladi va h.k.larni tushuntirish kerak bo'lardi. Xullas, out of topic. Shuning uchun tinchgina multithreading degandim(sababi, tepada threat tushuntirilgan).
Endi savolingizga qaytsak. Multithreading aslida async chiqishidan oldin IO-bound workload uchun ishlab chiqilgan. Async chiqishi bilan uning qadri ancha pasaydi. Sababi, CPU-bound uchun deyarli foydasiz(pythonda GIL "o'lganning ustiga tepgan qiladi"), IO-bound uchun esa async effectiveroq. Xullas, deyarli keraksiz bo'lib qoldi. Har holda, end-user developerlar uchun. Framework developerlar esa ko'p ishlatishadi. Asinxron ishlash noqulay va multiprocessing keraksiz joyda.
Demak siz va biz uchun:
- CPU-bound workloadda multiprocessing;
- IO-bound workloadda async.
RIP multithreading :-)
Post #141
556
Forwarded from Bobosher Musurmonov