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

Слушайте, а GIL защищает целостность данных между потоками (чтобы один

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

21 ответов

15 просмотров

Нет.

Пупа- Автор вопроса
evle
Нет.

а как

Пупа
а как

GIL защищает целостность интерпретатора. К твоим данным он никакого отношения не имеет.

гил не защищает юзер код

Пупа- Автор вопроса

Тогда GIL защищает от непреднамеренного удаления объекта из памяти в связи с тем, что, из-за состояния гонки, потоки могут неверно изменять счетчик ссылок на него? Например: Первый поток создает ссылку на объект и потом неожиданно засыпает, не успев увеличить счетчик, далее просыпается второй, который уменьшает счетчик до нуля и из-за этого срабатывает сборщик мусора удаляя объект из памяти. Затем вновь просыпается первый и пытается оперировать объектом, который уже удален, что вызывает смерть интерпритатора. Верно описал задачу, от который GIL спасает нас?

Пупа
Тогда GIL защищает от непреднамеренного удаления о...

Ну или счетчик ошибочно нарастится, и наоборот, объект никогда не деаллоцируется

Пупа- Автор вопроса
quantum super position
Ну или счетчик ошибочно нарастится, и наоборот, об...

Кстати, теперь хочу узнать верно ли я понимаю понятие итератор. Итератор - это не сколько объект коллекции, а больше объект потока данный, который позволяет, постепенно, получать предметы данной коллекции?

Пупа- Автор вопроса
evle
Что такое "поток данных"?

последовательность элементов, элемент которой мы получаем при обращении постепенно а не все сразу

Пупа
последовательность элементов, элемент которой мы п...

Ну, какой-то абстрактный термин, откуда у него объекты?

Пупа- Автор вопроса
Пупа- Автор вопроса
Пупа
не у него самого, а у коллекции

он является способом получения объектов

Пупа
не у него самого, а у коллекции

Итератор не обязан быть привязан к какой-либо коллекции.

Пупа- Автор вопроса

хммммм

Пупа
хммммм

Угу. Итератор есть, коллекции нет. Задача итератора - последовательно отдавать какие-то данные (и при необходимости хранить состояние). Где брать данные - его личное дело.

Пупа- Автор вопроса
evle
Угу. Итератор есть, коллекции нет. Задача итератор...

тогда какой термин будет уместен вместо "поток данных"?

Пупа
тогда какой термин будет уместен вместо "поток дан...

Фиг знает, в абстрактном виде можно и так, я только на "объектах" завис.

Пупа- Автор вопроса

Я думаю можно из того определения убрать момент "получать предметы данной коллекции" и оставить "это не сколько объект коллекции", чтобы делать акцент что это не коллекция и к ней он никак не привязан

Пупа
Я думаю можно из того определения убрать момент "п...

Собственно, в доке питона буквально: итератор - объект, представляющий поток данных (representing a stream of data). Сравни формулировку.

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Карта сайта