не изменил важные для другого данные в неожиданный момент времени и интерпритатор не лег) путем контролирования момент просыпания потоков или как?
Нет.
GIL защищает целостность интерпретатора. К твоим данным он никакого отношения не имеет.
гил не защищает юзер код
Тогда GIL защищает от непреднамеренного удаления объекта из памяти в связи с тем, что, из-за состояния гонки, потоки могут неверно изменять счетчик ссылок на него? Например: Первый поток создает ссылку на объект и потом неожиданно засыпает, не успев увеличить счетчик, далее просыпается второй, который уменьшает счетчик до нуля и из-за этого срабатывает сборщик мусора удаляя объект из памяти. Затем вновь просыпается первый и пытается оперировать объектом, который уже удален, что вызывает смерть интерпритатора. Верно описал задачу, от который GIL спасает нас?
Ну или счетчик ошибочно нарастится, и наоборот, объект никогда не деаллоцируется
Кстати, теперь хочу узнать верно ли я понимаю понятие итератор. Итератор - это не сколько объект коллекции, а больше объект потока данный, который позволяет, постепенно, получать предметы данной коллекции?
Что такое "поток данных"?
последовательность элементов, элемент которой мы получаем при обращении постепенно а не все сразу
Ну, какой-то абстрактный термин, откуда у него объекты?
не у него самого, а у коллекции
он является способом получения объектов
Итератор не обязан быть привязан к какой-либо коллекции.
хммммм
Угу. Итератор есть, коллекции нет. Задача итератора - последовательно отдавать какие-то данные (и при необходимости хранить состояние). Где брать данные - его личное дело.
тогда какой термин будет уместен вместо "поток данных"?
Фиг знает, в абстрактном виде можно и так, я только на "объектах" завис.
Я думаю можно из того определения убрать момент "получать предметы данной коллекции" и оставить "это не сколько объект коллекции", чтобы делать акцент что это не коллекция и к ней он никак не привязан
Собственно, в доке питона буквально: итератор - объект, представляющий поток данных (representing a stream of data). Сравни формулировку.
ну да, чет я загнул
Обсуждают сегодня