W informatyce współbieżność jest wykonywanie kilku sekwencji instrukcji w tym samym czasie. W systemie operacyjnym dzieje się tak, gdy istnieje kilka wątków procesowych działających równolegle. Te wątki mogą komunikować się ze sobą za pośrednictwem pamięci współdzielonej lub przekazywania wiadomości.
Dystrybucja jest formą współbieżności, w której cała komunikacja między równoczesnymi wątkami odbywa się wyłącznie za pomocą przekazywania wiadomości. Dystrybucja jest przydatna, ponieważ wykorzystuje bardziej łagodne skalowanie zużycia zasobów, co pozwala oszczędzać te zasoby. Podczas współbieżności współdzielonej pamięci często wymaga jednego procesora na wątek, dystrybucja pozwala kilku wątkom współistnieć i komunikować się między sobą.
Współbieżność to również filozofia projektowania oprogramowania. W programowaniu współbieżnym programiści próbują rozwiązać złożony problem w kilku równoczesnych procesach wykonawczych, które można rozwiązać indywidualnie. Chociaż programowanie współbieżne oferuje lepszą strukturę programu niż programowanie sekwencyjne, nie zawsze jest bardziej praktyczne. W systemie współbieżnym obliczenia wykonywane w tym samym czasie mogą się różnić, dając nieokreślone odpowiedzi. System może zakończyć się zakleszczeniem, jeśli dobrze zdefiniowane maksima nie są przypisane do zużycia zasobów każdego z wykonywanych wątków. Dlatego też, aby zaprojektować solidną współbieżność w systemie operacyjnym, programista musi zarówno zredukować problem do indywidualnych, równoległych zadań, jak i koordynować wykonanie, alokację pamięci i wymianę danych tych zadań.