
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

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 нет - то кто будет управлять общими данными ?
- а сам человек и будет

Andrey
06.12.2016
09:23:13

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

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

Dmitry
06.12.2016
09:24:26

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

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

Роман
06.12.2016
09:25:35

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 или не истечёт лимит инструкций

Ray
06.12.2016
09:28:56

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

Andrey
06.12.2016
09:30:10

Ray
06.12.2016
09:30:48

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
Это не понимать.
Но ведь то, что на каждый питоновский тред создаётся системный тред - правильно?

Dmitry
06.12.2016
09:38:16

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

Ray
06.12.2016
09:47:59
так вот
теперь я хочу спросить вопрос почему все так боятся gil ?

Admin
ERROR: S client not available

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

Ray
06.12.2016
09:48:58

53r63rn4r
06.12.2016
09:49:05
couchdb
Но я думаю не сильно важна разница, суть одна и та же?

Andrew
06.12.2016
09:49:24
Это я про порядок
В mongodb есть репликация
А ещё видел самодельную на основе rabbitmq
Но не стоит вскрывать эту тему

Andrey
06.12.2016
09:50:52

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 - записал его в документ - отправил клиентам
все
шардинг из коробки