anonymous@RULINUX.NET~# | Last login: 2024-11-05 13:26:45 |
Регистрация Вход | Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск |
Форум - Development | [RSS] |
Вчера на ночь начитался интересных статей)))
С утра сваял интересную на мой взгляд штуку, но не знаю как её назвать. Всегда был слаб по части "паттернов программирования" и прочей теоретической чепухи.
В общем не знаю что это я реализовал continuation или coroutine. Как вы думаете, шо эта? Пока назвал continuation, но не уверен)))
Ax-Xa-Xa(*) (2013-03-20 10:29:02)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
|
|
|
Скрыть
Re:Помогите разобраться!>> Как вы думаете, шо эта?
Ax-Xa-Xa(*)(2013-03-20 10:43:19)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 |
Скрыть
Re:Помогите разобраться!> Еще бы знать что етот твой класс делает.
Ax-Xa-Xa(*)(2013-03-20 10:53:33)
Отредактировано Ax-Xa-Xa по причине "не указана" Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 |
Скрыть
Re:Помогите разобраться!>При таска по чтению потока, работают одновременно, ну "почти одновременно")))
SystemV(*)(2013-03-20 14:30:23)
Отредактировано SystemV по причине "не указана" Emacs-w3m/1.4.513 w3m/0.5.3 |
Скрыть
Re:Помогите разобраться!Алсо. |
Скрыть
Re:Помогите разобраться!> Не могу сходу представить, зачем такое тебе понадобилось
Ax-Xa-Xa(*)(2013-03-20 14:41:02)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 |
Скрыть
Re:Помогите разобраться!> Вот более каноничный корутин
Ax-Xa-Xa(*)(2013-03-20 14:42:48)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 |
Скрыть
Re:Помогите разобраться!>Если ты заметил конкурентное читается стреам тремя тасками.
Ведь тут, по сути, некая буферизация происходит. Сначала мы читаем, отдаём в менеджер, потом только в следующем цикле эти данные получает сама функция. Судя по интернету, народ так делает, однако же если таск будет долгим, то это уже не так красиво. Хотя иного простого способа я сходу не вижу. >Прикрутить туда передачу управления назад в коротину, когда стрим доступен для операции I/O дело техники. А как ты, кстати, хочешь это сделать? В tornado вот полноценный io loop с select/poll. >Кстати как ты считаешь? Это все таки continuation или coroutine в чистом виде? Я не спец, но назвал бы coroutine. Как раз это функция, которая может остановиться и продолжить выполнение с некоторой точки. Точнее, конечно, твой код таки реализует механизм для создания coroutine, а самими coroutine являются функции, завёрнутые в декоратор:) А continuation это хитрое понятие, которое я своими словами описать могу с трудом, что-то вроде функции, которая позволяет переехать в другое место выполнения программы с сохранением контекста. Эдакое goto. Но вещи эти связанные, так как в случае с coroutine вполне себе необходимо прыгать между функцией и остальной программой. |
Скрыть
Re:Помогите разобраться!> Меня смущает только один момент:
Ax-Xa-Xa(*)(2013-03-20 17:25:41)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22 |
|
|
|
Этот тред читают 5 пользователей: |
Анонимных: 5 Зарегистрированных: 0 |
Re:Помогите разобраться!
> Как вы думаете, шо эта?
Это программа на петоне!