ta muallif kitobidan iqtiboslar  C# Concurrency. Асинхронное программирование и многопоточность

Очевидно, что никакого волшебства нет, потому что в информатике нет магии
Fikr bildirish
В отличие от Parallel.ForEach, параметр MaxDegreeOfParallelism по умолчанию (согласно документации) получает значение, равное числу ядер, и это логически и теоретически наиболее эффективное число потоков для асинхронного кода. Однако проблема в том, что Parallel.ForEachAsync использует это как количество одновременно обрабатываемых заданий, а не как количество потоков.
Fikr bildirish
И этот пример подвел нас к последнему правилу: не меняйте приоритет или привязку к процессору.
Fikr bildirish
Этот пример подводит нас к пятому правилу: чтобы избежать синхронизации, нужно удерживать блокировки как можно более короткое время, желательно только на время, необходимое для доступа к общему ресурсу, а не в течение выполнения всей операции. Если вы подумали, что правило «удерживать блокировки как можно более короткое время, а не в течение выполнения всей операции» противоречит четвертому правилу «удерживать блокировки в течение всей операции», то вы совершенно правы. Если блокировки слишком короткие, есть риск попасть в состояние гонки, а если блокировки слишком долгие, то возникает проблема синхронизации.
Fikr bildirish
И это подводит нас к четвертому правилу: блокировки должны удерживаться на протяжении всего выполнения операции. Возможно, сейчас вы попытаетесь возразить: «Нет, мы должны удерживать блокировки только в течение минимального периода времени!» — и будете правы, потому что слишком долгое удержание блокировок, скорее всего, приведет к синхронизации.
Fikr bildirish
Так мы подошли к третьему правилу: никогда не вызывайте неподконтрольный вам код, удерживая блокировку. Если нужно вызвать любой неподконтрольный вам код, то вызывайте его после снятия блокировок.
Fikr bildirish
Так мы подошли ко второму правилу: всегда устанавливайте блокировки в одном и том же порядке.
Fikr bildirish
Так мы подошли к первому правилу: всегда используйте блокировку при доступе к общим данным.
Fikr bildirish
Хэлен
Хэленiqtibos olmoqda1 oy oldin
не меняйте приоритет или привязку к процессору
Fikr bildirish
Хэлен
Хэленiqtibos olmoqda1 oy oldin
экстремальных случаях, когда блокировка удерживается слишком долго, возникает состояние голодания
Fikr bildirish