Telegram Web Link
🤔 Сколько нужно минимальное количество mutex для deadlock?

Минимальное количество mutex для возникновения deadlock — два.
1. Deadlock возникает, когда два потока блокируют два разных мьютекса и ждут друг друга.
2. Пример: Поток A блокирует mutex1 и пытается захватить mutex2, в то время как Поток B блокирует mutex2 и пытается захватить mutex1.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Из чего состоит shared_ptr?

shared_ptr состоит из указателя на объект и счетчика ссылок, управляющего временем жизни объекта. Когда количество ссылок становится нулевым, shared_ptr автоматически удаляет объект. Он также поддерживает совместное использование ресурсов между несколькими владельцами, что делает его удобным для совместного владения.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🤔 Какой оператор используется для доступа к членам через указатель на объект в C++?
Anonymous Quiz
6%
.
90%
->
2%
::
2%
#
🤔 Какая сложность работы с кучей?

Работа с кучей (heap) в алгоритмах обычно имеет временную сложность O(log n) для операций вставки и удаления, т.к. элементы необходимо сравнивать и переставлять для поддержания свойств кучи.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Для чего нужно ключевое слово explicit?

explicit предотвращает неявное преобразование или вызов конструктора, чтобы избежать ошибок и повысить читаемость кода.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🤔 Что будет, если переместить string?

При перемещении std::string данные не копируются, а передаются от исходного объекта новому. Исходный объект после перемещения остается валидным, но пустым, так как управление ресурсами переходит к новому объекту. Это повышает производительность.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Что такое рекурсивный mutex?

Рекурсивный mutex — это тип мьютекса, который позволяет одному и тому же потоку захватывать его несколько раз без блокировки. Это полезно, когда одна и та же функция вызывает себя рекурсивно или косвенно через другие функции и при этом требуется захватить один и тот же мьютекс. В отличие от обычного мьютекса, рекурсивный мьютекс учитывает количество захватов и освобождается только после того, как поток выполнит соответствующее количество вызовов unlock(). Это предотвращает взаимоблокировки при рекурсивных вызовах.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊1
🤔 Вопрос: Какой оператор используется для динамического выделения памяти в C++?
Anonymous Quiz
90%
new
7%
malloc
1%
alloc
1%
create
🤔1
🤔 Сложность удаление из начала у vector?

Удаление элемента из начала vector имеет временную сложность O(n), так как после удаления первого элемента все последующие элементы необходимо сдвигать на одну позицию влево. Это приводит к линейному времени выполнения операции. Vector не подходит для частых операций удаления в начале структуры. Для этих целей лучше использовать контейнеры, такие как list.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
2025/07/12 19:16:46
Back to Top
HTML Embed Code: