Load-link (ładuj-połącz) i store-conditional (zapisz-warunkowo) – para instrukcji stosowanych w programowaniu wielowątkowym w celu synchronizacji. Instrukcja load-link (LL) zwraca bieżącą wartość lokacji pamięci, natomiast zastosowana po niej instrukcja store-conditional (SC) zapisująca nową wartość do tej samej lokacji zostanie wykonana wtedy i tylko wtedy, jeśli nie nastąpiły żadne inne aktualizacje pamięci w podanej lokacji od początku wywołania instrukcji load-link. Para takich instrukcji pozwala na realizację operacji atomowej read-modify-write, których przykładami mogą być test-and-set, fetch-and-add lub compare-and-swap.
Takie instrukcje były początkowo zaproponowane przez Jensena, Hagensena i Broughtona w Lawrence Livermore National Laboratory dla multiprocesora AAP w projekcie S-1. Inne nazwy stosowane dla instrukcji load-link to „load-linked”, „load and reserve” lub „load-locked”.
Porównanie LL/SC i compare-and-swap Jeśli nastąpi jakakolwiek zapis, to z definicji zagwarantowane jest, że instrukcja store-conditional się nie powiedzie, nawet jeśli wartość odczytana przez load-link jest odtworzona.