@ru_python

Страница 3095 из 9768
Aleksandr
03.07.2017
23:23:50
а все потому что питон - не го
щет, я боюсь представить что ты залепишь про горутины)

Nikolay
03.07.2017
23:24:12
щет, я боюсь представить что ты залепишь про горутины)
а чего залеплять, просто го умеет много ядер использовать, а питон пока нет

Google
Aleksandr
03.07.2017
23:24:36
а чего залеплять, просто го умеет много ядер использовать, а питон пока нет
а за счет чего го умеет использовать их, если не секрет?

Nikolay
03.07.2017
23:25:03
а за счет чего го умеет использовать их, если не секрет?
за счет многопоточности, встроенной в ядро языка, и бесшовной их интеграции

в эрланге такое же достигается через легковесные процессы, например

питон так пока не умеет, потому что run_in_executor что? правильно, по дефолту использует ThreadPoolExecutor, который блокируется GIL

Aleksandr
03.07.2017
23:26:24
в эрланге такое же достигается через легковесные процессы, например
так-так, и что же там в эрланге внутри? может он легковесно распасрить 100мб JSON например?

Nikolay
03.07.2017
23:27:00
наверное, такое тоже теоретически возможно, на практике смутно себе представляю конкурентный парсинг дерева

Aleksandr
03.07.2017
23:28:19
странная задача для легковесного распараллеливания
то есть эрланг заточен на конкурентность или все же параллельность?

Nikolay
03.07.2017
23:28:39
я на эрланг последний раз смотрел довольно давно, но что он, что go до сих пор топчики по теме бесшовного использования нескольких ядер

а питон так не умеет, что бы ты там выше ни утверждал)

Aleksandr
03.07.2017
23:30:07
а питон так не умеет, что бы ты там выше ни утверждал)
наверно потому что в питоне нужно это делать самому? правда ведь? это потому что отличный API же

Google
Nikolay
03.07.2017
23:30:51
наверное потому что они там используют шедулеры внутри? да?
ну, эрланг использует message passing и шедулеры, да

в го чуть похитрее, но идея похожая в целом

наверно потому что в питоне нужно это делать самому? правда ведь? это потому что отличный API же
в питоне в принципе невозможно сделать точно так же, как в go, потому что здесь другая реализация по дефолту, и есть GIL

независимо от того, насколько хорош или плох API - питон в это просто тупо не умеет

возможно, скоро научится

если gilectomy выстрелит, например

или STM запилят

но пока до этого чего-то далеко

Aleksandr
03.07.2017
23:33:43
слушай, дай мне свои доклады послушать, или лекции, наверное не с пайкона пока но хоть что-то

Nikolay
03.07.2017
23:34:36
слушай, дай мне свои доклады послушать, или лекции, наверное не с пайкона пока но хоть что-то
приезжай на пайкон в подмосковье да послушай, сможем там лично пообщаться

16 июля вроде

Aleksandr
03.07.2017
23:35:25
Nikolay
03.07.2017
23:35:42
а что за доклад? мне даже любопытно стало
да буллшит в основном, serverless-архитектуры

Проксимов
03.07.2017
23:35:47
Я тоже буду
Тебя не пустят

Nikolay
03.07.2017
23:35:52
не совсем про питон даже

Aleksandr
03.07.2017
23:35:56
Nikolay
03.07.2017
23:36:04
Проксимов
03.07.2017
23:36:43
Aleksandr
03.07.2017
23:37:04
Google
Nikolay
03.07.2017
23:37:08
вот давай, очень интересно
https://xakep.ru/2017/01/11/python-3-asyncio/

here1am
03.07.2017
23:38:06
дораха

Aleksandr
03.07.2017
23:45:10


@Enchantner точка. не позорься больше.

Nikolay
03.07.2017
23:45:40
@Enchantner точка. не позорься больше.
в чем точка? на рисунке тупо неверно написано

кооперативная многозадачность - это когда сопрограммы сами решают, когда вернуть управление

here1am
03.07.2017
23:46:06
ноунейм картинка - неоспоримый аргумент

Nikolay
03.07.2017
23:46:13
а в питоне это решает шедулер в случае потоков

here1am
03.07.2017
23:46:21
(покажи код ёпты)

Скрудж
03.07.2017
23:46:38
Aleksandr
03.07.2017
23:46:56
в чем точка? на рисунке тупо неверно написано
http://www.dabeaz.com/python/UnderstandingGIL.pdf автор лох, бесспорно

Nikolay
03.07.2017
23:47:26
http://www.dabeaz.com/python/UnderstandingGIL.pdf автор лох, бесспорно
не лох, но термин не совсем корректно использовал, бывает

Nikolay
03.07.2017
23:47:50
ок
https://en.wikipedia.org/wiki/Cooperative_multitasking

Cooperative multitasking, also known as non-preemptive multitasking, is a style of computer multitasking in which the operating system never initiates a context switch from a running process to another process. Instead, processes voluntarily yield control periodically or when idle in order to enable multiple applications to be run simultaneously.

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

а в случае корутин - второй, потому что у нас есть yield и await

так что да, Бизли немного накосячил с термином

Nikolay
03.07.2017
23:50:15
да-да, и он всегда держит гил, лишая потоки конкурентности
не он, а поток, и не конкурентности, а параллельности

Google
Aleksandr
03.07.2017
23:50:17
еще в коде питона кто-то накосячил

и это именно так и работает

Nikolay
03.07.2017
23:50:37
шедулер потоков операционной системы остается шедулером потоков операционной системы

независимо от того, есть GIL в питоне или нет

и да, еще раз подчеркну - потоки в питоне - это обычные pthreads, параллельные. Синхронизируются на мьютексе, да, но, тем не менее, параллельные

и управляются шедулером, а не возвращают управление сами

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

Aleksandr
03.07.2017
23:53:06
не он, а поток, и не конкурентности, а параллельности
параллельность - это одновременное выполнение операций, в один и тот же момент времени, каждый системный поток может выполнять инструкции только на одном ядре и только последовательно. асинхронность (конкурентность) - это поочередное выполнение операций

Admin
ERROR: S client not available

Nikolay
03.07.2017
23:54:07
в общем случае - да, но не всегда

Aleksandr
03.07.2017
23:54:37
боже кто тебя пустил на пайкон, извини конечно

Nikolay
03.07.2017
23:55:00
боже кто тебя пустил на пайкон, извини конечно
не понимаешь базовых вещей ты, а виноват я? ну ок

Aleksandr
03.07.2017
23:55:20
да-да, все прости, продолжай вещать в том же духе

Nikolay
03.07.2017
23:55:50
так я все объяснил уже, даже ссылку на википедию привел

и описал тебе, как работает шедулер в питоне, и разжевал, почему run_in_executor тебе не поможет

Alex
03.07.2017
23:56:07
боже кто тебя пустил на пайкон, извини конечно
Но он прав ващет. А ты хуйню пишешь. Ну так, на всякий случай.

Nikolay
03.07.2017
23:56:09
а ты все чем-то не доволен

Aleksandr
03.07.2017
23:57:40
давайте запилим голосование - Отпускается ли GIL на I/O-операции в потоках? мне очень любопытно что в широких массах считают, если спикеры региональной топовой конференции несут такую чушь

Nikolay
03.07.2017
23:58:16
Но он прав ващет. А ты хуйню пишешь. Ну так, на всякий случай.
да он даже хуйни не пишет, он просто уцепился за идею, что run_in_executor ему чем-то поможет в случае потоков и внутренних вызовов (на самом деле нет)

Google
Маришка
03.07.2017
23:59:16
> И внезапно по результатам голосования в питоне начнёт работать GIL

или для себя

Маришка
03.07.2017
23:59:35
определиться не можешь?)

Nikolay
03.07.2017
23:59:50
давайте запилим голосование - Отпускается ли GIL на I/O-операции в потоках? мне очень любопытно что в широких массах считают, если спикеры региональной топовой конференции несут такую чушь
вот давай ты еще на личности перейдешь :) и вместо вникания в суть дела начнешь гнуть свою линию, не вникая в суть того, что тебе пишут

Nikolay
04.07.2017
00:00:14
определиться не можешь?)
ну, если бы голосование влияло на то, останется GIL в питоне или нет, я бы в нем поучаствовал

Aleksandr
04.07.2017
00:00:33
определиться не можешь?)
ну тут Коля опровергает реальность, интересно сколько человек с ним солидарно

Denis
04.07.2017
00:00:39
Ну вообще зависит от того, как реализована операция. Если там какая-то нетривиальная сишная либа и ее разработчик рак, гил может не отпускаться

Nikolay
04.07.2017
00:01:01
ну тут Коля опровергает реальность, интересно сколько человек с ним солидарно
я не опровергаю реальность, я тебе банально процитировал википедию и базовые основы работы GIL и многопоточности

Denis
04.07.2017
00:01:39
Если это нормальные файлы или сокеты, отпускается

Nikolay
04.07.2017
00:01:41
Ну вообще зависит от того, как реализована операция. Если там какая-то нетривиальная сишная либа и ее разработчик рак, гил может не отпускаться
не, ну кривые руки всегда есть, разумеется, этого никто не отменял :) как хорошо, что в мейнстримовых либах такого говна нет

Denis
04.07.2017
00:02:00
Можно даже проверить

Aleksandr
04.07.2017
00:02:34
Nikolay
04.07.2017
00:02:49
Александр, я знаю, за что ты уцепился - за принцип работы aiofiles. Да, он работает в базовом виде благодаря тредам, потому что там внешний I/O. Да, треды в данном случае полезны, потому что GIL на таких операциях отпускается

Denis
04.07.2017
00:03:03
В одном потоке синхронный recv, другой что-нибудь пишет по таймеру

Nikolay
04.07.2017
00:03:06
но это довольно редкий случай, когда от них реально есть польза

Страница 3095 из 9768