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

Метод read

Метод read класса RwLock захватывает блокировку на чтение. Пока хотя бы один поток удерживает блокировку на чтение, другие потоки также могут захватывать блокировку на чтение, но ни один поток не может захватить блокировку на запись. Метод возвращает объект RwLockReadGuard, который автоматически освобождает блокировку при выходе из области видимости. Параметров метод не принимает.

Синтаксис

rwlock.read()

Пример

Давайте создадим RwLock с числом и прочитаем значение через метод read:

use std::sync::RwLock; fn main() { let lock = RwLock::new(5); let res = lock.read().unwrap(); println!("{}", res); }

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

5

Пример

Давайте захватим несколько блокировок на чтение одновременно, что разрешено для RwLock:

use std::sync::RwLock; fn main() { let lock = RwLock::new(5); let r1 = lock.read().unwrap(); let r2 = lock.read().unwrap(); println!("{} {}", r1, r2); }

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

5 5

Пример

Давайте прочитаем значение из RwLock со строкой:

use std::sync::RwLock; fn main() { let lock = RwLock::new("abcde"); let res = lock.read().unwrap(); println!("{}", res); }

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

"abcde"

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

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