Будинки Розвиток Що таке синхронізація потоків? - визначення з техопедії

Що таке синхронізація потоків? - визначення з техопедії

Зміст:

Anonim

Визначення - Що означає синхронізація теми?

Синхронізація потоків - це одночасне виконання двох або більше потоків, які діляться критичними ресурсами. Нитки повинні бути синхронізовані, щоб уникнути критичних конфліктів щодо використання ресурсів. В іншому випадку можуть виникати конфлікти, коли паралельно запущені потоки намагаються одночасно змінити загальну змінну.

Техопедія пояснює синхронізацію ниток

Для уточнення синхронізації потоків розглянемо наступний приклад: три потоки - A, B і C - виконуються одночасно та потребують доступу до критичного ресурсу, Z. Щоб уникнути конфліктів під час доступу до Z, нитки A, B і C повинні бути синхронізовані . Таким чином, коли A отримує доступ до Z, а B також намагається отримати доступ до Z, доступу B до Z потрібно уникати за допомогою заходів безпеки, поки A не закінчить свою роботу і не вийде із Z.


У Java використовуються дві стратегії синхронізації для запобігання втручання потоку та помилок узгодженості пам'яті:

  • Синхронізований метод: включає в свою декларацію ключове слово синхронізоване. Коли потік викликає синхронізований метод, синхронізований метод автоматично отримує внутрішній замок для об'єкта цього методу і звільняє його, коли метод повертається, навіть якщо це повернення було викликане невиконаним винятком.
  • Синхронізована заява: оголошує блок коду для синхронізації. На відміну від синхронізованих методів, синхронізовані оператори повинні визначати об'єкти, які забезпечують внутрішнє блокування. Ці твердження корисні для поліпшення одночасності з дрібнозернистою синхронізацією, оскільки вони дозволяють уникнути зайвого блокування.

Що таке синхронізація потоків? - визначення з техопедії