Библиотека собеса по C# | вопросы с собеседований
5.68K subscribers
213 photos
2 videos
1 file
199 links
Вопросы с собеседований по C# и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/4c2f1c3b

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Что означает «D» в ACID?

Это свойство гарантирует, что как только транзакция завершена, её изменения будут сохранены, даже если система внезапно выйдет из строя.

Допустим, вы перевели деньги через интернет-банк, и транзакция завершилась успешно. Даже если сервер после этого упал, ваш перевод всё равно будет сохранён. Это означает, что данные, записанные в процессе транзакции, не потеряются и останутся целыми.


🐸Библиотека собеса по С#
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 Какую проблему решает ThreadPool

ThreadPool решает проблему управления потоками в многозадачных приложениях. Он помогает оптимизировать производительность за счет повторного использования уже созданных потоков, чтобы избежать дорогих операций по созданию и уничтожению потоков при каждой задаче.
Основная цель ThreadPool — эффективно управлять количеством потоков, чтобы не перегружать систему и при этом поддерживать высокую производительность. Когда задача добавляется в пул потоков, ThreadPool выбирает свободный поток или создает новый, если их недостаточно. Это позволяет избежать утечек памяти и перегрузки, которые могут возникнуть при прямом управлении потоками вручную.

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


🐸Библиотека собеса по С#
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔📝 Псевдокод: когда преподы не шарят, а ты в тупике

Псевдокод может быть настоящим головняком, особенно если требования к нему кажутся непонятными или не совпадают с тем, что вы видите в реальной практике программирования.

Узнайте, как сделать псевдокод полезным инструментом, а не дополнительной нагрузкой.

➡️ Читать статью

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
Где будет размещен значимый тип данных, если он объявлен внутри класса

Если у класса есть значимый тип данных (например, int, double, struct), то он будет храниться в области памяти, предназначенной для экземпляра этого класса, то есть в heap (если класс создается с помощью оператора new) или в stack (если класс создается локально). Однако важно отметить, что сам значимый тип данных будет храниться непосредственно внутри объекта, на который указывает ссылка.

Например:
Если класс является ссылочным типом (class), то сам объект класса будет размещен в куче (heap), но значимый тип данных будет храниться в этом объекте в том же месте.
Если класс является структурой (struct), то данные будут храниться в том месте, где создается экземпляр структуры (например, в стеке, если структура объявлена локально).

Таким образом, где именно будет храниться значимый тип данных, зависит от того, является ли класс ссылочным типом или значимым типом.


🐸Библиотека собеса по С#
Please open Telegram to view this post
VIEW IN TELEGRAM
Можно ли в рамках lock и использовать await

Нет, в рамках оператора lock нельзя использовать await.

Когда вы используете lock, поток блокируется до тех пор, пока не завершится выполнение кода внутри блока. Операции с await требуют освобождения потока, чтобы он мог продолжить выполнение других задач, что несовместимо с блокировкой потока через lock.

Если вы хотите использовать асинхронные операции с ожиданием, следует использовать другие механизмы синхронизации, такие как SemaphoreSlim, которые поддерживают асинхронное ожидание.


🐸Библиотека собеса по С#
Please open Telegram to view this post
VIEW IN TELEGRAM