
Марк
23.05.2016
17:30:46
Как-то заметил, что asyncio в третьем пайтоне пользуется популярностью. Сам ее не щупал, но при беглом осмотре она кажется продолжением идей asyncore. Или я неправ?

Eugene
23.05.2016
17:32:36

Aldar
23.05.2016
17:32:47
На питоне?

Dmitry
23.05.2016
17:33:56

Google

fox.hs
23.05.2016
17:34:57

?
23.05.2016
17:42:36
Кстати, большинство ньюфагов не знает градацию - сначала идет стажер, а джуниор - это уже 1-3 года опыта, который может уже неплохо зарабатывать.

Eugene
23.05.2016
17:44:04
клевая кошка

Paul
23.05.2016
17:44:51

?
23.05.2016
17:45:50
>не работает
Учатся в универе, дома, на работе всё-таки дают пусть и мелочные, но реальные задачи.

Aleksandr
23.05.2016
17:46:54
сказал КОТИК
/me гладит кота

Zart
23.05.2016
17:47:49

Paul
23.05.2016
17:50:34

Марк
23.05.2016
17:50:34
неправ
Asyncore - это ж тоже асинхронщина.

Zart
23.05.2016
17:51:30
старый асинкоре - это свой ивент луп, которому надо скормить набор объектов, изображающих типа сокеты
новый асинкио - ивент луп абстрагирован и может быть использован внешний, а основная работа идёт с помощью корутин
"та же асинхронщина" - это слишком размыто
да, оба основаны на асинхронном и/о, но апи и архитектура поверх совершенно разные

Google

Roman
23.05.2016
17:53:28
кстати, а вот ради чего в asyncio explicit event loop?
почему не сделали как в golang/gevent/eventlet?

Zart
23.05.2016
17:54:11
для интеграции с другими системами, полагаю
бери голанг/гивент/ивентлет, кто мешает?
ответы на почему можно поискать в https://www.python.org/dev/peps/pep-3156/

Roman
23.05.2016
17:55:57

Zart
23.05.2016
17:57:29
вообще за переделывание асинка в питоне взялся сам бдфл
у него стояло несколько задач - обеспечить совместимость новой модели с существующими асинк фреймворками, чего не было у старого асинкора
и обеспечить простую и расширяемую модель для работы с асинком поверх всего этого
полагаю первое ему удалось, а второе - время покажет

Марк
23.05.2016
18:11:19
Я вот взял за основу asyncore из-за еe минималистичности. Но как-то тесновато. А twisted - жирновато

Zart
23.05.2016
18:23:12
корутин - это особый вид генератора, который не имеет никакого отношения к селект

parikLS
23.05.2016
18:25:09
https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0

87776
23.05.2016
18:26:03
Митя репер а ты картавый?

parikLS
23.05.2016
18:26:22
конечно

87776
23.05.2016
18:26:27
Отлично
Репер должен быть картавый имхо

parikLS
23.05.2016
18:27:10
+

Costel Salanders
23.05.2016
18:27:52

Boris
23.05.2016
18:28:30
Я думал Джуниор это 1-2 года, дальше ты мидл

dead
23.05.2016
18:29:56
а это всё разве не от количества работы которую чел способен качественно выполнять зависит?

Google

Boris
23.05.2016
18:30:19

dead
23.05.2016
18:30:25
можешь и 5 лет работать, но не вытягивать по объёмам

Марк
23.05.2016
18:30:33

Zart
23.05.2016
18:31:17
не помню в перле никаких сопрограмм
но последний раз я перл курил лет хренадцать тому

Марк
23.05.2016
18:31:59
http://search.cpan.org/~mlehmann/Coro-6.49/Coro.pm

Zart
23.05.2016
18:32:59
эти коро выглядят как обычные зеленые треды

hg
23.05.2016
18:42:18
извините, случайно отправил

Roman
23.05.2016
18:42:20

Zart
23.05.2016
18:43:01
зеленый лук лучше

Suren
23.05.2016
18:43:53
Лучше чем что

Zart
23.05.2016
18:44:21
вот в том-то и вопрос

dead
23.05.2016
18:46:18
это всё, конечно, _Если_ питон умеет треды ;)

Zart
23.05.2016
18:46:36
умеет

Марк
23.05.2016
18:46:50
Мультипроцессинг разве нет?

Zart
23.05.2016
18:47:05
засуньте мультипроцессинг куда поглубже

dead
23.05.2016
18:47:13
мультипроцессинг - это совсем другое

Марк
23.05.2016
18:47:14
Трединг?

Zart
23.05.2016
18:47:16
зачем люди им вообще пользуются, я до сих пор не понимаю
Трединг?
ты просто так терминами покидаться, или с конкретной целью?

Google

Марк
23.05.2016
18:47:58
С конкретно, конечно

dead
23.05.2016
18:48:22

Zart
23.05.2016
18:48:38
ссылку пожалуйста на "нечто лучшее"
они занимаются слегка разными вещами
в питоне есть модули thread - где собственно предоставлен низкоуровневый интерфейс к потокам ос
threading - высокоуровневые питон-обёртки вокруг thread
а multiprocessing это довольно навороченное решение, которое берет на себя менеджмент подпроцессов и маршалинг данных между ними, что суть оверкилл для большинства вещей, для которых его пытаются применить


dead
23.05.2016
18:51:06
ссылку пожалуйста на "нечто лучшее"
в офдоке по модулю threading
CPython implementation detail: In CPython, due to the Global Interpreter Lock, only one thread can execute Python code at once (even though certain performance-oriented libraries might overcome this limitation). If you want your application to make better use of the computational resources of multi-core machines, you are advised to use multiprocessing or concurrent.futures.ProcessPoolExecutor. However, threading is still an appropriate model if you want to run multiple I/O-bound tasks simultaneously.

Zart
23.05.2016
18:51:46
это про то, что многопроцессные решения скейлятся лучше на данный момент

Admin
ERROR: S client not available

Zart
23.05.2016
18:52:23
и там про выполнение питон кода, тогда как очень много задач являются I/O баунд и прекрасно живут в питоновой многопоточности
если на то пошло, то весь этот асинк, зеленые потоки и прочая поебень не масштабируются на мультикор вовсе
но разве это останавливает юных кактусоводов

dead
23.05.2016
18:55:38
хм, ну я хз вообще.. по моим наблюдениям threading нормально справляется в распределении на ядра. я вроде бы даже пытался графики работы ядер смотреть.. хотя может быть я что-то делал неправильно

parikLS
23.05.2016
18:56:29

Zart
23.05.2016
18:56:52
кто о чем...

dead
23.05.2016
18:56:58
это не мешает использовать многоядерность

Dmitry
23.05.2016
18:57:01
ппц

Zart
23.05.2016
18:57:14
пионеры, блядь (с) почти лавров

Dmitry
23.05.2016
18:57:18
@zartsoft чад, угар и содомия

dead
23.05.2016
19:09:27
или мы о чём-то разном говорим?
import threading
stop_flag = threading.Event()
def func(sf):
while True:
if stop_flag.is_set():
break
return
t1 = threading.Thread(
target=func,
args=(stop_flag,)
)
t2 = threading.Thread(
target=func,
args=(stop_flag,)
)
t1.start()
t2.start()
input()
stop_flag.set()
t1.join()
t2.join()

Roman
23.05.2016
19:10:52

Google

Zart
23.05.2016
19:11:01
это ваше всё

Марк
23.05.2016
19:11:34

Roman
23.05.2016
19:12:11

Марк
23.05.2016
19:12:34
Есть 10 процессов. Два ядра. Разложить их по ядрам

Zart
23.05.2016
19:12:50
какой такой лоадбалансинг... это обычный шедулер потоков в ос
запусти процесс с аффинити - и все потоки будут крутится на одном ядре по очередно

Марк
23.05.2016
19:13:25
Не придерайся

Zart
23.05.2016
19:14:12
о.о

猫友升
23.05.2016
19:14:44
Ребза, поясните за вебхуки в телеграме. Можно ли прикрутить веб-сервер, принимающий реквесты от серверов телеграма, к сущемтвующему боту на питоне?

Roman
23.05.2016
19:14:51

Марк
23.05.2016
19:14:52

Roman
23.05.2016
19:15:14

Марк
23.05.2016
19:16:02
Я условно. У нас 4 ядра. Процессов двести от одного пайтоновского скрипта

Zart
23.05.2016
19:16:08
"Смысла грузить одно ядро нет никакого, так как время критично"
в этой фразе прекрасно всё

dead
23.05.2016
19:16:12

Zart
23.05.2016
19:16:36
@cadmi, пошли отсюда, шоле...

Roman
23.05.2016
19:17:22

Dmitry
23.05.2016
19:17:30
@zartsoft да ладно! раки everywere