РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1077 of 1245 menu

Метод try_write класса RwLock

Метод try_write класса RwLock пытается получить эксклюзивную блокировку на запись. Если блокировка может быть получена немедленно, метод возвращает Ok с guard-объектом RwLockWriteGuard. Если блокировка уже удерживается другим потоком или ожидается освобождение блокировки, метод возвращает Err с ошибкой TryLockError. Параметров метод не принимает.

Синтаксис

rwlock.try_write()

Пример

Давайте попробуем получить блокировку на запись, когда она свободна:

use std::sync::RwLock; fn main() { let rwlock = RwLock::new(5); match rwlock.try_write() { Ok(mut guard) => { *guard = 10; println!("Write lock acquired: {}", *guard); } Err(_) => { println!("Write lock not available"); } } }

Результат выполнения кода:

"Write lock acquired: 10"

Пример

Давайте попробуем получить блокировку на запись, когда она уже удерживается:

use std::sync::RwLock; fn main() { let rwlock = RwLock::new(5); let _lock = rwlock.write().unwrap(); match rwlock.try_write() { Ok(mut guard) => { *guard = 10; println!("Write lock acquired: {}", *guard); } Err(_) => { println!("Write lock not available"); } } }

Результат выполнения кода:

"Write lock not available"

Смотрите также

  • класс RwLock,
    который представляет синхронизационный примитив для множественного чтения и эксклюзивной записи
  • метод write,
    который блокирует поток до получения блокировки на запись
  • метод read,
    который получает блокировку на чтение
  • метод try_read,
    который пытается получить блокировку на чтение без блокировки потока
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить