Общие термины Flashcards

1
Q

Mutex

A

Mutual exclusion
Взаимное исключение
В параллельном программировании

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Смарт-указатель

A

Указатель, которому не нужен unsafe-контекст

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Где находится смарт-указатель Mutex?

A

std::sync

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Какой метод предоставляется для управлением Mutex?

A

lock()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Что делает lock() у Mutex

A

Когда поток получает блокировку при помощи lock(), это гарантирует, что никакие другие потоки не смогут одновременно изменять или получать доступ к защищенным данным

Этот механизм необходим для предотвращения гонок за данными и обеспечения упорядоченного выполнения параллельного кода

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

unwrap

A

Если в Result находится Ok, то возвращается объект
Если находится Err, то вызывается panic!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

expect

A

Работает аналогично unwrap, только здесь мы можем указать сообщение для panic

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

unwrap_or_else

A

Аналогично unwrap, только здесь мы можем указать свою собственную реализацию для Err

let tom = create_person(“Tom”, 136).unwrap_or_else(|error| {

    panic!("Возникла проблема: {}", error)
});
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Может ли Mutex автоматически разблокироваться?

A

Да, например, в следующем коде

{
let mut guard = data.lock().unwrap();
*guard *= 2;
}
… в конце произойдет автоматическая разблокировка

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

*var

A

Разыменовывание
Мы можем обратиться не посредственно к данным

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Tuple

A

Кортеж

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Как определяется кортеж

A

Кортеж определяется в круглых скобках

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

В чем смысл кортежа

A

Под одним именем хранить данные разных типов

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Как обратиться к первому элементу кортежа?

A

<имя>.<индекс>
</индекс></имя>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Объявите матрицу

A

let matrix: [[<type>; <count_elements_in_array>],<count_arrays>] = [
[ 1, 2, 3],
[ 4, 5, 6]
]</count_arrays></count_elements_in_array></type>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Как создать экземляр
struct Point = (i32, i32);

A

let point1 = new Point(5,10);

15
Q

Что это
struct Point = (i32, i32);

A

Структура-кортеж

16
Q

Размер isize и usize

A

Зависит от системы
Либо u32 и i32 соответственно, либо u64 и i64

17
Q

Последовательность (Range)

A

..
0..10 (0 - 9)
0..=10 (0 - 10)

18
Q

Slice это

A

Часть набора элементов, например, часть массива

19
Q

Замыкание

A
20
Q

Затенение

A
21
Q
A