tag:blogger.com,1999:blog-824928856526666223.post7286946096613815396..comments2022-11-30T10:25:30.656+02:00Comments on Андрей Светлов: Загадочный GILAndrew Svetlovhttp://www.blogger.com/profile/08716418137388253439noreply@blogger.comBlogger26125tag:blogger.com,1999:blog-824928856526666223.post-55562144771097553162014-02-18T21:46:15.038+02:002014-02-18T21:46:15.038+02:00Добрый день,
Не могли бы Вы прояснить следующую с...Добрый день,<br /><br />Не могли бы Вы прояснить следующую ситуацию:<br />Есть 2 потока: первый из них печатает постоянно увеличивающееся число, второй вызов функции из C extension, содержащей бесконечный while(1).<br /><br />Получит ли первый поток управление назад, или все так и зависнет на втором?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-5459586828887157912011-08-20T16:04:24.915+03:002011-08-20T16:04:24.915+03:00andrew.svetlov gmail.com — спрашивайте, что вам и...andrew.svetlov gmail.com — спрашивайте, что вам интересно.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-12127761489572696682011-08-19T14:58:08.250+03:002011-08-19T14:58:08.250+03:00Вот еще ссылка интересная, недавно Дэвид Бизли нап...Вот еще ссылка интересная, недавно Дэвид Бизли написал еще про GIL: http://dabeaz.blogspot.com/2011/08/inside-look-at-gil-removal-patch-of.html<br /><br />Андрей, а Вы случаем не консультируете по c-api за деньги? и если да, как с Вами связатся, и сколько это стоит :)alexhttps://www.blogger.com/profile/08791994403400397796noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-6582769651911754432011-07-19T07:04:11.662+03:002011-07-19T07:04:11.662+03:00Этот комментарий был удален автором.Basilevshttps://www.blogger.com/profile/18365249343645417769noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-74432223185781960492011-07-11T20:36:50.453+03:002011-07-11T20:36:50.453+03:00> Это не правда. Чуваки, что пилят PyPy, намека...> Это не правда. Чуваки, что пилят PyPy, намекали, что собираются этим заняться, если будет финансирование.<br /><br />Уже было примерно 5 попытток выкинуть GIL (чаще всего перейти к более гранулярным - мелким, по одной на объект, блокировкам). Последняя - гугловая unladen swallow. Все они окончились ничем - или не были доведены до конца из-за сложности задачи, или были слишком медленны на однопоточных вариантах. Пока только jython имеет нечто подобное(мелкие блокировки), но там ему сильно помогает java VM. К тому-же выбрасываение GIL означает выбрасывание всех С расширения для питона :) а без них питон - никудаAnonymoushttps://www.blogger.com/profile/06645078574760734586noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-74312801788494886812011-07-06T21:38:07.248+03:002011-07-06T21:38:07.248+03:00Ой, не видел вторую часть про сигналы, извиняюсь!Ой, не видел вторую часть про сигналы, извиняюсь!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-41027341792838062822011-07-06T18:22:57.357+03:002011-07-06T18:22:57.357+03:00Ребята из PyPy могут пилить очень долго.
От «наме...Ребята из PyPy могут пилить очень долго. <br />От «намерений заняться» до полноценной реализации может пройти очень много времени. И вообще PyPy всё ещё никак не замена CPython.<br />Посмотрим, что выйдет.<br /><br />С терминологией сплошная беда. Когда говорю CPython — меня не понимают, принимая за CPython какой-то экзотический диалект. Говорю Python — вы начинаете придираться.<br /><br />Вообще-то, как мне кажется, если не было уточнений то стоит подразумевать именно CPython. Потому что прочие-разные явно не mainstream, и если речь идет, скажем, о Jython — то обычно так и пишут.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-90448603482005038022011-07-06T16:52:53.607+03:002011-07-06T16:52:53.607+03:00>GIL не уберут никогда. Или, по крайней мере, в...>GIL не уберут никогда. Или, по крайней мере, в ближайший десяток лет. Сейчас никаких работ на эту тему не ведется<br /><br />Это не правда. Чуваки, что пилят PyPy, намекали, что собираются этим заняться, если будет финансирование.<br /><br />Автор, статья хорошая, но к терминологии не могу не придраться. Python - язык, сам по себе не быстрый и не медленный. Никаких GIL он не подразумевает. CPython - реализация интерпретатора языка Python (не единственная). Читать исходники, очевидно, рекомендуется именно его.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-37414947361232446372011-07-06T01:56:38.436+03:002011-07-06T01:56:38.436+03:00Стесняюсь спросить: вы приложение http://asvetlov....Стесняюсь спросить: вы приложение http://asvetlov.blogspot.com/2011/07/signal.html читали?Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-64167105059059200132011-07-06T01:12:54.878+03:002011-07-06T01:12:54.878+03:00Интересует такой момент: многие питоньи многопоточ...Интересует такой момент: многие питоньи многопоточные приложения не получается прибить по Ctrl+C...<br />Давно хотел разобраться почему но все как-то не получалось. Может вы подскажите?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-79981358020875223402011-07-05T21:56:58.822+03:002011-07-05T21:56:58.822+03:00Собираю, изменяю и время от времени пользуюсь. Всё...Собираю, изменяю и время от времени пользуюсь. Всё делаю самым что ни на есть стандартным способом — так что не представляю о чём таком необычном нужно рассказывать.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-54264009055625581932011-07-05T19:59:31.571+03:002011-07-05T19:59:31.571+03:00Я имел ввиду workflow работы с питоновскими исходн...Я имел ввиду workflow работы с питоновскими исходниками.<br />В постах ты пишешь, что смотришь sources и другим рекомендуешь. Ты его только глазами просматриваешь или каким-то образом собираешь проект, изменяешь код, отладчиком пользуешься?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-43346181773723993462011-07-05T17:44:51.993+03:002011-07-05T17:44:51.993+03:00Не понял вопросаНе понял вопросаAndrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-3322866748241731372011-07-05T14:59:06.782+03:002011-07-05T14:59:06.782+03:00Спасибо за прекрасную статью.
Андрей, расскажи, к...Спасибо за прекрасную статью. <br />Андрей, расскажи, как ты работаешь с исходниками питона. <br />Как собираешь, модифицируешь, перекомпилируешь? А больше всего интересует как отлаживаешь?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-1132630955914339522011-07-05T14:19:41.523+03:002011-07-05T14:19:41.523+03:00>> Станислав
Простите, но вы не поняли. Пито...>> Станислав<br />Простите, но вы не поняли. Питон не делает свой планировщик — он заставляет работать тот, что есть так, как нужно Питону.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-12722731409076921242011-07-05T13:52:31.548+03:002011-07-05T13:52:31.548+03:00>Средств явных для управления механизмом нет (н...>Средств явных для управления механизмом нет (но <br />>существуют приоритеты потоков и прочие не <br />>используемые питоном механизмы)<br />А почему? Какой смысл делать свой планировщик и бороться с уже существующим?Станиславhttps://www.blogger.com/profile/10222672793607759157noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-49730950719469510872011-07-05T11:06:38.192+03:002011-07-05T11:06:38.192+03:00>> koder
Да, верно. Пришлось бы менять прави...>> koder<br />Да, верно. Пришлось бы менять правила игры, пересматривать гарантии атомарности и убирать global state. <br />Но это понятные и обозримые задачи, не являющиеся главным препятствием. Работа по растаскиванию global state и так понемногу ведется — посмотрите на схему инициализирования C Extension в Python 3.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-76341119016427725842011-07-05T04:31:47.344+03:002011-07-05T04:31:47.344+03:00> В Java и C# никакого GIL нет. Потому что у ни...> В Java и C# никакого GIL нет. Потому что у них иначе устроен garbage collector<br /><br />Тут же не только в GC дело. А еще и в том, что потоки в питоне разделяют большое количество совместно модифицируемых данных и счетчик ссылок объекта - только одна из них (например модули) + GIL гарантирует атомарность операций над встроенными типами вплоть до {}.setdefault и прочих.<br /><br /><br />> Если хотите, он более прогрессивный<br /><br />:) только никто не знает, когда объект удалится/закроется/освободится<br /><br />P.S. Пост хороший, спасибоAnonymoushttps://www.blogger.com/profile/06645078574760734586noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-41971010713121213212011-07-04T19:55:34.658+03:002011-07-04T19:55:34.658+03:00>> pod2metra
Вопрос о книгах — это не ко мн...>> pod2metra <br />Вопрос о книгах — это не ко мне. Из «толстых томов» читал только http://diveintopython.org/ — отличная вещь!<br />На http://python.su/forum/viewtopic.php?id=18 пятнадцать страниц со ссылками на литературу и советами-рекомендациями. Посмотрите и поспрашивайте — наверняка подскажут хорошие источники.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-67689172107870713802011-07-04T19:51:51.201+03:002011-07-04T19:51:51.201+03:00>> id
Производительность улучшилась, естеств...>> id<br />Производительность улучшилась, естественно :)<br />GIL стал переключаться плавнее и предсказуемей. При этом не переключается, если не просят.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-61701206891463083562011-07-04T19:43:48.835+03:002011-07-04T19:43:48.835+03:00День добрый. Андрей, а не мог бы ты поделиться сво...День добрый. Андрей, а не мог бы ты поделиться своим опытом. Каую литературы лучше всего выбрать для обучения питону. Мне очень хочеться повысить свои навыки в программировани и в питоне в частности. <br />Пожалуй задам вопрос иначе какие книги нужно держать на своей книжной полке каждому уважающему себя програмисту.pod2metrahttps://www.blogger.com/profile/14431767713827344015noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-71723520013301418042011-07-04T19:36:18.184+03:002011-07-04T19:36:18.184+03:00Отличная статья. Кстати, неизвестно как отразилось...Отличная статья. Кстати, неизвестно как отразилось изменение логики GIL связанного кода для Py3k на производительность языка?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-8370953709210490622011-07-04T18:21:05.346+03:002011-07-04T18:21:05.346+03:00Рад, что тебе понравилосьРад, что тебе понравилосьAndrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-82150100429941966772011-07-04T17:01:12.034+03:002011-07-04T17:01:12.034+03:00Спасибо за отличную статью.Спасибо за отличную статью.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-824928856526666223.post-12724694529969135262011-07-04T16:30:41.293+03:002011-07-04T16:30:41.293+03:00Я имел в виду, что ОС занимается переключением пот...Я имел в виду, что ОС занимается переключением потоков (не важно, Питон в них выполняется или JavaScript). И алгоритм этого переключения весьма непрост. Средств явных для управления механизмом нет (но существуют приоритеты потоков и прочие не используемые питоном механизмы). Кроме того планировщик динамически повышает/понижает приоритет потока когда считает нужным. Вникать в детали сейчас не требуется — следует просто помнить, что планировщик существует и он переключает потоки.Andrew Svetlovhttps://www.blogger.com/profile/08716418137388253439noreply@blogger.com