C# Concurrency. Асинхронное программирование и многопоточность
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  C# Concurrency. Асинхронное программирование и многопоточность

Anton P.
Anton P.дәйексөз келтірді2 күн бұрын
Многопоточность позволяет компьютеру создавать видимость одновременного выполнения нескольких задач, даже когда их количество превышает количество ядер процессора
Комментарий жазу
Anton P.
Anton P.дәйексөз келтірді2 күн бұрын
Асинхронное программирование, напротив, фокусируется на оптимизации использования процессора во время операций, которые обычно блокируют его, что гарантирует эффективное использование вычислительных ресурсов
Комментарий жазу
Хэлен
Хэлендәйексөз келтірді2 апта бұрын
Это делает Abort слишком опасным в использовании, настолько, что компания Microsoft запретила его в .NET Core, .NET 5 и более поздних версиях
Комментарий жазу
Хэлен
Хэлендәйексөз келтірді2 апта бұрын
Библиотека .NET предоставляет стандартный механизм, с помощью которого можно сообщить фоновой операции, что она должна завершиться, — класс CancellationToken
Комментарий жазу
Павел Штерн
Павел Штерндәйексөз келтірді3 апта бұрын
который будет управлять всем этим месивом и решать, что и когда запускать.
Комментарий жазу
Илья Ж.
Илья Ж.дәйексөз келтірді1 ай бұрын
Очевидно, что никакого волшебства нет, потому что в информатике нет магии
Комментарий жазу
Борис Ш.
Борис Ш.дәйексөз келтірді1 ай бұрын
В отличие от Parallel.ForEach, параметр MaxDegreeOfParallelism по умолчанию (согласно документации) получает значение, равное числу ядер, и это логически и теоретически наиболее эффективное число потоков для асинхронного кода. Однако проблема в том, что Parallel.ForEachAsync использует это как количество одновременно обрабатываемых заданий, а не как количество потоков.
Комментарий жазу
Борис Ш.
Борис Ш.дәйексөз келтірді1 ай бұрын
И этот пример подвел нас к последнему правилу: не меняйте приоритет или привязку к процессору.
Комментарий жазу
Борис Ш.
Борис Ш.дәйексөз келтірді1 ай бұрын
Этот пример подводит нас к пятому правилу: чтобы избежать синхронизации, нужно удерживать блокировки как можно более короткое время, желательно только на время, необходимое для доступа к общему ресурсу, а не в течение выполнения всей операции. Если вы подумали, что правило «удерживать блокировки как можно более короткое время, а не в течение выполнения всей операции» противоречит четвертому правилу «удерживать блокировки в течение всей операции», то вы совершенно правы. Если блокировки слишком короткие, есть риск попасть в состояние гонки, а если блокировки слишком долгие, то возникает проблема синхронизации.
Комментарий жазу
Борис Ш.
Борис Ш.дәйексөз келтірді1 ай бұрын
И это подводит нас к четвертому правилу: блокировки должны удерживаться на протяжении всего выполнения операции. Возможно, сейчас вы попытаетесь возразить: «Нет, мы должны удерживать блокировки только в течение минимального периода времени!» — и будете правы, потому что слишком долгое удержание блокировок, скорее всего, приведет к синхронизации.
Комментарий жазу