Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Coro - реальные потоки в           Perl                   Артемьев Артём
Event-loop- цикл, который за каждую итерацию проверяет  очередь на наличие каких-либо событий.По возникновению события, ко...
AnyEvent- framework, представляющий собой   абстрактный слой над всеми event-loop   реализациями.Это значит, что Вы можете...
Coro – что это?”Coro” от ”coroutine” - ”сопрограмма”. В основе  лежит принцип кооперативной  многопоточности.В процессе ра...
Coro – как это?use Coro;                        Выведет:async {                  main 1   print "async 1n";    async 1   c...
Coro – основные компонентыCoro::AIO       truly asynchronous file and directory I/OCoro::AnyEvent integrate threads into A...
Threads vs Coro201816141210                       Threads                       Coro 8 6 4 2 0      Math        IO
Threads vs Coro - различия            Coro                          ThreadsЕдиная область памяти для      Память для каждо...
Threads vs Coro - использованиеCoro можно использовать: в сетевых приложениях, в приложениях с вводом- выводом, в оконных ...
Спасибо за внимание.      Вопросы?
Upcoming SlideShare
Loading in …5
×

Coro - реальные потоки в Perl

2,760 views

Published on

Краткий ввод в реализацию технологии Coroutines в Perl. Понятие event-loop, интерфейс для работы с loop'ами - AnyEvent. Работа с данными в асинхронном режиме.

Published in: Education
  • Be the first to comment

Coro - реальные потоки в Perl

  1. 1. Coro - реальные потоки в Perl Артемьев Артём
  2. 2. Event-loop- цикл, который за каждую итерацию проверяет очередь на наличие каких-либо событий.По возникновению события, контекст этого события передаётся следящим за событием обработчикам.В Perl существует много разных реализаций event-loopов:EV, Event, Glib, Tk, Perl, Event::Lib...
  3. 3. AnyEvent- framework, представляющий собой абстрактный слой над всеми event-loop реализациями.Это значит, что Вы можете писать Ваше event- driven приложение используя абстракцию AnyEvent, расположенную над любым из доступных на данной системе event-loop.
  4. 4. Coro – что это?”Coro” от ”coroutine” - ”сопрограмма”. В основе лежит принцип кооперативной многопоточности.В процессе работы два потока должны взаимодействовать между собой и давать поработать друг другу, когда это будет необходимо.Каждый поток работает с одним пространством имён. То есть данные являются общими для всех потоков.
  5. 5. Coro – как это?use Coro; Выведет:async { main 1 print "async 1n"; async 1 cede; main 2 print "async 2n"; async 2}; cede - аналог yieldprint "main 1n";cede;print "main 2n";cede;
  6. 6. Coro – основные компонентыCoro::AIO truly asynchronous file and directory I/OCoro::AnyEvent integrate threads into AnyEventCoro::Channel message queuesCoro::EV do events the coro-way, with EVCoro::Event do events the coro-way, with EventCoro::Handle non-blocking I/O with a blocking interface.Coro::Semaphore counting semaphoresCoro::Signal thread signals (binary semaphores)Coro::Socket non-blocking socket-I/OCoro::State first class continuationsCoro::Timertimers and timeouts, independent of any event loopCoro::Util various utility functions....
  7. 7. Threads vs Coro201816141210 Threads Coro 8 6 4 2 0 Math IO
  8. 8. Threads vs Coro - различия Coro ThreadsЕдиная область памяти для Память для каждого потокавсех потоков. выделяется копированием области памяти родительского потока.Нет необходимости ”шарить” Необходимо шаритьперменные переменные с общими для всех потоков даннымиВсе Coro-потоки работают в Interpreter Threads, Для каждогоодном системном потоке. потока запускается свой Perl интерпретатора.Принцип коопераивной Native threads (в Linux),многопоточности. Передача Эмулирование потоков(вуправления по необходимости. Windows)
  9. 9. Threads vs Coro - использованиеCoro можно использовать: в сетевых приложениях, в приложениях с вводом- выводом, в оконных приложениях(в связке с GTK, Tk, etc.).Threads можно использовать где угодно, но неприятные ограничения в некоторых случаях заставляют от неё отказываться.
  10. 10. Спасибо за внимание. Вопросы?

×