@ru_python

Страница 1874 из 9768
Dmitry
06.12.2016
09:01:33
Согласен

Ray
06.12.2016
09:02:11
о слушайте

все спросить хотел

чем гринлеты от тредов отличаются ?

Google
Dmitry
06.12.2016
09:02:58
Тут в python_beginners проскакивало

CPU-зависимая задача => Multi Processing I/O-зависимая, быстрый I/O => Multi Threading I/O-зависима, медленный I/O => Asyncio

Andrew
06.12.2016
09:05:01
Треды используют системную реализацию тредов, а greenlet это реализация на питоне и там всё исполняется в одном системном треде. При ожидании io например происходит передача управления на другой тред

Могу ошибаться кстати, в питоне я работал только с twisted и asyncio

Поправьте если кто знает лучше

Dmitry
06.12.2016
09:07:21
Разница между ним и обычным потоком заключается в том, что зеленый поток не блокируется. Если произошло какое-то событие, которое заблокировало бы обычный поток, gevent переключит управление на другой зеленый поток.

Цитата из книжки :)

Все верно

Andrew
06.12.2016
09:10:21
При этом я всё равно вычисления какие-то отправляю в отдельный тред

Иначе заблокируется

Ещё для вычислений норм использовать cython, numpy

Роман
06.12.2016
09:18:09
Ещё для вычислений норм использовать cython, numpy
все равно же придется в треды лезть

Andrew
06.12.2016
09:18:18
Да, но без gil

Google
Denis
06.12.2016
09:18:23
В русскоязычном издании книги о Python все листинги выровнены по левому краю./ Да, юзернейм, ты все понял правильно: отступов нет ВООБЩЕ

Роман
06.12.2016
09:18:27
ну да

а вот тогда еще вопрос

gil'a нет, а профит от многоядерности будет?)

Andrew
06.12.2016
09:20:00
Да

Aragaer
06.12.2016
09:21:14
/me таки прошел йолку 2015

и щас майню ответ на 5.1 2016.

Ray
06.12.2016
09:22:52
- но если gil'a нет - то кто будет управлять общими данными ? - а сам человек и будет

Andrew
06.12.2016
09:23:48
gil это для работы интерпретатора же, он не управляет пользовательскими данными

Ray
06.12.2016
09:24:14
если у меня два треда пишут в один и тот самый лист

разве не gil будет поочередно их лочить ?

Dmitry
06.12.2016
09:24:26
какой-то бессмысленный набор слов
Почему бессмысленный? Просто пару слов про gevent

Andrew
06.12.2016
09:24:50
Но это побочный эффект же

Ray
06.12.2016
09:25:06
ну так как понимать что не гил управляет данными

когда именно гил ними и управляет

Роман
06.12.2016
09:25:35
разве не gil будет поочередно их лочить ?
а не лок который ты выставляешь?

Ray
06.12.2016
09:25:57
а не лок который ты выставляешь?
так я не выставляю никаких локов

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

Google
Andrew
06.12.2016
09:26:26
Просто исполняется всегда какой-то один поток и заметный профит есть только на io

Andrey
06.12.2016
09:26:32
Почему бессмысленный? Просто пару слов про gevent
Потому что бессмысленный. Что значит зеленый поток не блокируется? А как же тогда происходит переключение на другой зеленый поток? А вот это вообще синтаксически некорректное предложение: " Если произошло какое-то событие, которое заблокировало бы обычный поток, gevent переключит управление на другой зеленый поток."

Ray
06.12.2016
09:26:34
а где он проявляется ? Вы его когда-нибудь видели ?

Andrew
06.12.2016
09:27:03
Поэтому он ничем не управляет в прямом смысле

Один поток работает, пока не дойдёт до io или не истечёт лимит инструкций

Andrew
06.12.2016
09:29:00
Другие пытаются захватить gil в это время

Andrey
06.12.2016
09:30:10
все точно так-же как и с нативными пэтоновскими тредами, только наоборот
Я отлично понимаю, как работают питоновские треды, системные треды, зеленые треды и асинхронные вызовы. Но я не понимаю, что за безграмотная хуйня написана в цитате из книги. Кстати, что за книга?

Andrew
06.12.2016
09:30:55
Так уже рассказали же

Ray
06.12.2016
09:31:33
так вроде как хуйню понаписывали а не рассказали ... сейчас хочу сравнить что к чему

Andrew
06.12.2016
09:32:12
Ну я пытался сказать правильно, но не умею, хреновый из меня рассказчик

Ray
06.12.2016
09:32:28
а вот это будем сейчас посмотреть )

Andrey
06.12.2016
09:35:08
о ! Тогда это мне к вам. Чем отличаются треды от гринлетов ?
Питоновские треды от гринлетов? Есть системные треды - ими командует системный шедулер Питоновские треды - ими управляет питоновский шедулер - там GIL и вот это вот все Зеленые треды или корутины - ими управляет event loop на epoll (или kqueue, или select)

если кратко

Andrew
06.12.2016
09:35:47
Хмм, а разве питоновские треды не используют системные треды?

Но при этом у них gil, да

Andrey
06.12.2016
09:36:03
Хмм, а разве питоновские треды не используют системные треды?
все эти треды вложены друг в друга как матрешки

Andrew
06.12.2016
09:37:20
Это не понимать. Но ведь то, что на каждый питоновский тред создаётся системный тред - правильно?

Google
Andrey
06.12.2016
09:39:16
Это не понимать. Но ведь то, что на каждый питоновский тред создаётся системный тред - правильно?
да, корутина или зеленый поток работают в питоновском треде, а тот работает в системном треде

Andrew
06.12.2016
09:39:49
Про greenlet и asyncio всё понятно, тут тред один

Dmitry
06.12.2016
09:39:56
Либо захотели так обьяснить чтобы "попонятнее было"

Andrew
06.12.2016
09:40:27
Просто ведь внутри питона можно было бы переключать контекст без системных тредов

Поэтому уточняю

Наверно это ещё хуже бы работало

Andrey
06.12.2016
09:47:02
Просто ведь внутри питона можно было бы переключать контекст без системных тредов
внутри питона контекст переключается только после переключения системного контекста, тогда включается питоновский шедулер и начинается процедура поиска следующего питоновского треда на исполнение - питон выполняет все свои треды в строгом порядке: 1, 2, 3..., 1, 2, 3, а система - по приориетам

Ray
06.12.2016
09:47:59
так вот

теперь я хочу спросить вопрос почему все так боятся gil ?

Admin
ERROR: S client not available

53r63rn4r
06.12.2016
09:48:43
Ребзя, а кто с носкл работал? как мне репликацию захреначить?

53r63rn4r
06.12.2016
09:49:05
couchdb

Но я думаю не сильно важна разница, суть одна и та же?

Andrey
06.12.2016
09:50:52
Это если все треды грузят cpu, а при ожидании io может измениться порядок
да, некоторые треды пропускаются, потому что заблокированы на IO или спят

Google
Ray
06.12.2016
09:53:14
couchdb
http://guide.couchdb.org/draft/replication.html

53r63rn4r
06.12.2016
09:54:12
Ох, как-то тяжко

Andrew
06.12.2016
09:55:08
А зачем вообще нужен nosql? На большинстве задач sql работал и будет работать и весьма неплохо

53r63rn4r
06.12.2016
09:56:07
Ну вот у меня например на проекте носкл решение, +нобекенд, с кордовы-апп клиента пишется сразу в коуч

правда обработать потом эти данные - ох как тяжко

Andrew
06.12.2016
09:56:30
Я понимаю, а чем оно обосновано?

53r63rn4r
06.12.2016
09:56:53
Ну, я пока не увидел для себя преимуществ в юзании носкл-решений

только геморрой и тяжесть

Andrew
06.12.2016
09:57:08
Вот и я о том. Хотя в проекте используют, куда деваться

Именно так я с mongodb и поимел опыт

53r63rn4r
06.12.2016
09:57:21
Поимел :D

Ray
06.12.2016
09:57:48
а вот у меня был проект где тимлид побоялся использовать монго

а зря

набор полей каждый раз разный

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

задача просто идеально ложилась на монго

53r63rn4r
06.12.2016
09:59:34
Так как мне стянуть изменения?

дб_name/_changes?

Ray
06.12.2016
09:59:56
ты получил json - записал его в документ - отправил клиентам

все

шардинг из коробки

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