Протопоток

Протопоток — единица программной обработки, обеспечиваемая особыми программными средствами, позволяющими не задействовать механизмы потоков операционной системы, одна из форм реализации сопрограмм.

Работая как «легковесные» потоки, не использующие стек, протопотоки обеспечивают блокирующий контекст ценой расхода считанных байтов памяти на один поток. Из-за того, что протопотоки не используют стек, приходится использовать глобальные переменные для сохранения значений при переключении контекста[1]. Протопотоки невытесняемы, поэтому переключение контекста возможно только на блокирующих операциях.

Концепцию протопотоков разработали Адам Данкелс и Оливер Шмидт[2]. Реализовано несколько различных библиотек протопотоков для Си и C++.

Примечания

  1. A. Dunkels, O. Schmidt, T. Voigt, and M. Ali, Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems, Proc. ACM SenSys, Boulder, CO, USA, Nov 2006. (PDF, Presentation slides)
  2. Adam Dunkels' website
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.