2月14日什么星座
Przetwarzanie wspó?bie?ne (ang. concurrent computing) – przetwarzanie oparte na wspó?istnieniu wielu w?tków lub procesów, operuj?cych na wspó?dzielonych danych. W?tki uruchomione na tym samym procesorze s? prze??czane w krótkich przedzia?ach czasu, co sprawia wra?enie, ?e wykonuj? si? równolegle. W przypadku procesorów wielordzeniowych lub wielow?tkowych, mo?liwe jest faktycznie wspó?bie?ne przetwarzanie. Tego rodzaju przetwarzanie jest te? mo?liwe w architekturach wieloprocesorowych. W takiej sytuacji wydajno?? poszczególnych w?tków zasadniczo nie jest degradowana przez inne w?tki, z wyj?tkiem sytuacji, kiedy w?tki musz? rywalizowa? o wspólne zasoby, np. przepustowo?? magistral i urz?dzeń lub czas procesora, lub musz? synchronizowa? swoj? prac?.
Przetwarzanie wspó?bie?ne znajduje szerokie zastosowanie w serwerach, które musz? obs?ugiwa? liczne ??dania od ró?nych klientów. Gdyby serwer dzia?a? sekwencyjnie, jedno du?e ??danie sparali?owa?oby prac? serwera – pozosta?e ??dania czeka?yby na swoj? kolej, a? tamto zostanie ukończone. W architekturach jednow?tkowych w celu zapobie?enia zatrzymaniu przetwarzania w?tków przez du?e zadanie, stosuje si? technik? wyw?aszczania i multitaskingu. W architekturach wieloprocesorowych lub z procesorami wielordzeniowymi i/lub wielow?tkowymi, potrzeba multitaskingu jest du?o mniejsza, chyba ?e liczba wymagaj?cych wykonania w?tków jest wi?ksza, ni? liczba procesorów fizycznych lub wirtualnych w systemie.
Jednoczesna praca na wspó?dzielonych danych mo?e doprowadzi? do utraty ich spójno?ci, dlatego konieczne jest stosowanie ró?nych mechanizmów synchronizacyjnych, np. semaforów i monitorów. Niektóre j?zyki programowania (np. Go, Erlang, Ada, Rust) powsta?y z my?l? o tworzeniu systemów wspó?bie?nych i zawieraj? silne wsparcie dla komunikacji lub synchronizacji w?tków ju? na poziomie j?zyka.