170 похожих чатов

Говорят, что у питона многопоточность отсуствует в полной мере. Так

ли это и лучше ли начать учить тогда джаву/котлин?

21 ответов

15 просмотров

не совсем так, GIL конечно это проблема для мультитредов но вот в 3.8 появились сабинтепретаторы. то есть вполне можно работать. Но если тебе нужно реально нагруженные процессы то лучше выбрать что-то более скоростное, пиши сразу на плюсах

paulwinex
не совсем так, GIL конечно это проблема для мульти...

тонкий намек на то что не появились и перенесены на 3.10

врут

Evgen https://www.anekdot.ru/tags/Обама
Спасибо за ответ!)

основная проблема это одновременное использование памяти из разных потоков. В питоне есть способы это обойти или заменить. просто они не шибко быстрые. В 3.8+ это дело старабтся порешать через шаринг мемори и всё такое. В общем процесс идет.

paulwinex
не совсем так, GIL конечно это проблема для мульти...

опять таки смотря на каких задачах. GIL далеко не всегда проблема.

Alex
опять таки смотря на каких задачах. GIL далеко не...

ну это точно. просто берем за самое больное место в этом вопросе

paulwinex
ну это точно. просто берем за самое больное место ...

да нет, автор услышал какую-то чушь, не разобрался. а страшный GIL его еще больше в заблуждение сейчас введет.

paulwinex
не совсем так, GIL конечно это проблема для мульти...

TL;DR в питоне вполне себе полноценные потоки, потоки операционной системы. есть некоторые нюансы с CPU-bound задачами и распараллеливанием их на несколько CPU.

Alex
TL;DR в питоне вполне себе полноценные потоки, пот...

@ThreeStripe_Raccoon это сообщение было адресовано тебе.

Alex
TL;DR в питоне вполне себе полноценные потоки, пот...

эти потоки будут работать по очереди а не вместе если GIL из лочит. Он будет лочить в определённых ситуация, а в других не будет. Если в этом разобраться то всё будет норм. А если юзать сабинтерпретаторы то там у каждого свой GIL и они не пересекаются. На сколько я понял сообщения между потоками щас делается через сериализацию пиклом, и это медленно, особенно если через файлы. И щас уже можно перекидывать быстро непосредственно линком на память, но всё равно через сериализацию. Могу ошибаться. Короч нечего тут бояться, протсо надо в вопросе разобраться. Причем мне тоже, я до сих пор знаю только примерно(

Alex
@ThreeStripe_Raccoon это сообщение было адресован...

Да, я правда не особо разбирался, так что спасибо

paulwinex
эти потоки будут работать по очереди а не вместе е...

что значит "по очереди, а не вместе". что за чушь?

Alex
что значит "по очереди, а не вместе". что за чушь?

если идет обращение к одним и тем же данным то GIL не даст это сделать одновременно

paulwinex
если идет обращение к одним и тем же данным то GIL...

ухты, то есть в классической многопоточной модели доступ к разделяемым данным синхронизировать не нужно?

paulwinex
если идет обращение к одним и тем же данным то GIL...

и да, если у тебя 1 CPU все потоки априори не могут выполняться параллельно

paulwinex
если идет обращение к одним и тем же данным то GIL...

на будущее: 1. перестань нести чушь в областях, в которых ты очевидно некомпетентен. 2. перестань использовать расплывчатые формулировки.

Alex
и да, если у тебя 1 CPU все потоки априори не могу...

Не всегда понимаю, зачем использовать многопоток, если тот же мультипроцессинг есть

A
Не всегда понимаю, зачем использовать многопоток, ...

кроме того у потоков, как ты наверное знаешь, общее адрессное пространство.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта