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

Метод get_mut

Метод get_mut возвращает изменяемую ссылку &mut T на данные, которые хранятся внутри мьютекса. Этот метод не требует блокировки мьютекса, поскольку он принимает &mut self, а это гарантирует, что других ссылок на мьютекс в данный момент не существует. Параметров метод не принимает. Возвращается LockResult<&mut T>, то есть Result, который содержит изменяемую ссылку на данные в случае успеха.

Синтаксис

mutex.get_mut()

Пример

Давайте создадим мьютекс с числом 5 и изменим его значение через метод get_mut:

use std::sync::Mutex; fn main() { let mut mutex = Mutex::new(5); *mutex.get_mut().unwrap() = 10; println!("{:?}", mutex); }

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

Mutex { data: 10, poisoned: false, .. }

Пример

Давайте создадим мьютекс с вектором vec![1, 2, 3, 4, 5] и добавим в него новый элемент через метод get_mut:

use std::sync::Mutex; fn main() { let mut mutex = Mutex::new(vec![1, 2, 3, 4, 5]); mutex.get_mut().unwrap().push(6); println!("{:?}", mutex); }

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

Mutex { data: [1, 2, 3, 4, 5, 6], poisoned: false, .. }

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

  • класс Mutex,
    который представляет собой примитив синхронизации
  • метод lock,
    который блокирует мьютекс и возвращает guard
  • метод try_lock,
    который пытается заблокировать мьютекс без ожидания
  • метод into_inner,
    который извлекает данные из мьютекса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить