Конкурентно програмиране: Разлика между версии

Изтрито е съдържание Добавено е съдържание
м Bot: Automated text replacement (-(1\d(?:\<[Ss][Uu][Pp][^>]*\>)?)-?т?(а|ата|о|ото|и|ият?|ите|ина|ината)\b +\1-\2)
Ред 57:
 
== Изпълнение ==
Има различни методи за осъществяване на конкурентно програмиране. Например, изпълнение на всяко изчислително изпълнение като [[Процес (информатика)|процес]] на операционната система, или осъществяване на изчислителен процес като набор от [[Нишка (програмиране)|нишки]] в рамките на един процес на операционната система.
 
'''Конкурентно взаимодействие и комуникация'''
* '''[[Споделена памет]]:''' конкурентните компоненти си комуникират, чрез промени по съдържанието на обща памет (примерно [[Java]] и [[C Sharp|C#]]). Този вид конкурентно програмиране обикновено изисква някаква форма на заключване (например [[mutexes]], [[semaphores]] или [[monitors]]), за да може да се координират отделните нишки. Програма, която изпълнява всички от тях, се нарича thread-safe.
* '''[[Предаване на съобщения]]:''' компонентите си общуват чрез размяна на съобщения (примерно [[Scala]], [[Erlang]] and [[occam]]). Обменът на съобщения може да се извършва асинхронно или синхронно „рандеву” стил, в който изпращачаизпращачът се блокира, докато не изпрати съобщението. Пращането на асинхронните съобщения може да е ненадеждно (наричат се ”Прати и се моли”). Предаването на съобщения тенденциозно е по-лесно от Споделената памет и се смята за по стабилна форма на конкурентно програмиране. Предаването на съобщения може ефективно да се осъществи върху [[симетрични микропроцесори]], със или без споделена памет.
 
== История ==