Współprogram
Sign in to saveAlso known as Coroutines
Coroutines are computer program components that allow execution to be suspended and resumed, generalizing subroutines for cooperative multitasking. Coroutines are well-suited for implementing familiar program components such as cooperative tasks, exceptions, event loops, iterators, infinite lists and pipes.
Article · Polski
Pojęcie współprogramu ma dwie odmienne definicje. Obie definicje zgodnie stwierdzają, że współprogram cechuje się posiadaniem ciągu instrukcji do wykonania i ponadto możliwością zawieszania wykonywania jednego współprogramu A i przenoszenia wykonywania do innego współprogramu B. W szczególności można wznowić pracę zawieszonego współprogramu A, a wykonywanie będzie podjęte w miejscu, w którym zostało zawieszone. Tym co różni obie definicje jest zdolność współpracy z rekurencyjnymi procedurami (W językach programowania funkcyjnego koncepcja współprogramu istnieje pod postacią kontynuacji – pojęcia wprowadzonego niemal równocześnie ze współprogramami). Obiekt współprogramu jest quasi-wątkiem. Tak jak wątek ma ciąg instrukcji do wykonania, w odróżnieniu od wątków obiekty współprogramów nie działają równolegle. Jest niezmiennikiem systemu współprogramów to, że w każdej chwili, dokładnie jeden obiekt współprogramu wykonuje swoje instrukcje: W literaturze znaleźć można termin włókno (ang. fiber) dla odróżnienia od wątku (ang.thread). W latach 60 XX wieku współprogram był fragmentem kodu napisanego w assemblerze. wątki o następujących własnościach: * dokładnie jeden współprogram wykonuje swoje instrukcje, tzn. jest aktywny, * współprogram aktywny może przejść w stan pasywny wskazując przy tym na inny wątek, który ma być uaktywniony, * współprogram uaktywniony w efekcie wykonania instrukcji (w dotychczas aktywnym współprogramie ) kontynuuje wykonywanie instrukcji od odpowiedniego punktu wejścia, dokładniej: pierwsze uruchomienie instrukcji wątku współprogramu spowoduje wykonanie pierwszej instrukcji wątku, każda następna instrukcja wznawiająca wykonywanie wątku współprogramu rozpoczyna wykonywanie instrukcji od punktu wejścia wyznaczonego przez ostatnio wykonaną w nim instrukcję
Abstract from DBpedia / Wikipedia · CC BY-SA