Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2010-08-17

GIL

Global Interpreter Lock, это такой механизм в Python, приводящий, грубо говоря, многопоточную программу к однопоточной.
Посмотрел я выступление David Beazley (увлекательно вещает), почитал SmoothSpan. Пост Guido тоже прочел. Не понял только одно — зачем в Python (точнее, в CPython) реализовали поддержку многопоточного построения программ? Чтоб было? Для учебных целей?

Если CPython by design не поддерживает многопоточность (и не собираецца) в полном обьеме, зачем в него встраивать имитацию многопоточности, отлаженную на одноядерном камне? На многоядерных многопоточная питонская прога работает так, что ужас разбирает.
Я бы убрал из Python функции создания и запуска потоков, чтоб соблазна не было у тех, кому приятно параллелить в потоки а не в процессы.
А еще любопытно наблюдать, как грамотные и знающие все эти тонкости люди, во что бы то ни стало, стремяцца на однопоточном Python написать многопоточную программу. А потом удивляются/возмущаются, что прога жрет ресурсы и работает медленнее чем в один поток.

Сказано вам - Python однопоточный, параллельте процессами через обмен сообщениями. Вот только зачем в нем функции создания потоков?


Читаю рассказы Сэлинджера, не оторваться. Сегодня воодушевился таким отрывком:

Радфорд был родом из Эйджерсбурга, штат Теннесси. Он говорил, что это примерно в часе езды от Мемфиса. Видимо, очень славный городок. Там, например, есть одна улица, называется Мисс-Пэккер-стрит. Не просто Пэккер-стрит, а именно Мисс-Пэккер-стрит. Так звали одну эйджерсбургскую учительницу, которая во время Гражданской войны в упор расстреляла из окна отряд северян, проходивший под стенами школьного здания. Не размахивала флагом, как какая-нибудь Барбара Фритчи. Нет, мисс Пэккер просто прицелилась и открыла огонь и успела уложить пятерых парней в синих мундирах, прежде чем до нее добрались с топором. И было ей тогда девятнадцать лет.

lib.rus.ec/b/171803

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) Klaipeda (13) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)