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

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

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

21 ответов

8 просмотров

не совсем так, 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
Не всегда понимаю, зачем использовать многопоток, ...

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

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

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

И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
здравствуйте. пытаюсь проверить, содержится ли в десятичном представлении инта некоторая цифра. совершаю: strstr(x, "5") != NULL) получаю ошибку с фото (заведомо неработающий ...
Катя Шевчук🪇
17
Что там вообще с кроссплатформенностью?
🄼🄰🄺🅉🄰🄸
23
{ char buff = *start; *start = *end; *end = buff; } Из-за этой строчки? Что каждый символ через перем бафф? Как вариант использовать другие со...
Wenks
12
#include <stdio.h> #include <string.h> int main() { char *str = "Hello World"; char *ptr; int i = 0; for(char *end = str + strlen(str) - 1; end = str; ptr++, ...
Wenks
9
а я правильно понимаю что в винде сетевые диски выполнены на уровне юзерспейс драйвера? ну я про те которые webDAV, SMB и прочие высокоуровневые
Mixail Frolov
9
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
Карта сайта