Files
obsidian-life/mindmaps/Книга 'Библия C-шарп' 12 глава.canvas
2026-04-22 17:43:25 +03:00

67 lines
9.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"nodes":[
{"id":"6258470f4949a080","type":"text","text":"Многопоточность![[Pasted image 20260114112250.png]]","x":-260,"y":-200,"width":660,"height":380,"color":"4"},
{"id":"6ccaea3735da0bd3","type":"text","text":"Основы","x":-460,"y":-41,"width":117,"height":62,"color":"1"},
{"id":"b4d6842f6fc52332","type":"text","text":"**Поток** — это путь выполнения кода","x":-760,"y":-51,"width":200,"height":82},
{"id":"46522dd855aee84b","type":"text","text":"Главный поток `Main()`","x":-1060,"y":-232,"width":273,"height":64},
{"id":"8f54d3b1dc116b3e","type":"text","text":"Вторичный поток","x":-1185,"y":-10,"width":250,"height":60},
{"id":"aa9ddbf0450d791b","type":"text","text":"Суть","x":-520,"y":80,"width":89,"height":50},
{"id":"15980de9cff620a8","type":"text","text":"Технология, позволяющая выполнять несколько процессов или путей кода одновременно (единовременно).","x":-1020,"y":80,"width":395,"height":114},
{"id":"696083fd57171c4c","type":"text","text":"Причины использования","x":-68,"y":260,"width":276,"height":63,"color":"1"},
{"id":"867b3b35a8c59d75","type":"text","text":"Если вызвать длительную функцию (например, чтение данных из сети) в основном потоке, выполнение программы остановится до завершения этой функции.","x":-605,"y":440,"width":408,"height":175},
{"id":"9eef8698f2f625ca","type":"text","text":"Отзывчивость интерфейса (UX)","x":-95,"y":374,"width":330,"height":66},
{"id":"e500476e027cc0d2","type":"text","text":"Вынос тяжелых задач (сеть, сложные вычисления) во вторичные потоки позволяет основному потоку всегда оставаться свободным для взаимодействия с пользователем.","x":-165,"y":480,"width":471,"height":187},
{"id":"a9f7ba58d497a048","type":"text","text":"Синхронное ожидание![[Pasted image 20260115053650.png]]","x":-431,"y":233,"width":295,"height":180},
{"id":"a8251d2a41f2b441","type":"text","text":"Ожидание внешних событий![[Pasted image 20260115053730.png]]","x":340,"y":228,"width":500,"height":292},
{"id":"5505e323e62ab27c","x":-660,"y":-380,"width":281,"height":50,"type":"text","text":"Приостановка `Sleep()`"},
{"id":"f8a77d708c80cc47","x":-681,"y":-480,"width":300,"height":57,"type":"text","text":"Завершение автоматически"},
{"id":"52f84d7cbaf95536","x":-619,"y":-288,"width":200,"height":50,"type":"text","text":"Запуск `Start()`"},
{"id":"d3f42bb28e9feddd","x":-304,"y":-288,"width":278,"height":56,"color":"6","type":"text","text":"`using System.Threading`"},
{"id":"0113f4493a58b147","x":-228,"y":-380,"width":126,"height":50,"color":"1","type":"text","text":"`Thread`"},
{"id":"2671739f72233c1a","x":-357,"y":-776,"width":384,"height":296,"type":"text","text":"Приоритеты\n\n| Highest | Наивысший |\n| ----------- | ---------------- |\n| AboveNormal | Выше нормального |\n| Normal | Нормальный |\n| BelowNormal | Ниже нормального |\n| Lowest | Низший |\n"},
{"id":"a0d28350ff78c806","x":92,"y":-640,"width":308,"height":104,"type":"text","text":"**Foreground:** Приложение не закроется, пока работают такие потоки."},
{"id":"9577582cbbd5011f","x":93,"y":-497,"width":307,"height":92,"type":"text","text":"**IsBackground:** Свойство, определяющее тип потока"},
{"id":"cbd96f37d745e8cd","x":93,"y":-380,"width":307,"height":142,"type":"text","text":"**Background:** Завершаются автоматически при закрытии основного потока приложения"},
{"id":"57e32e25c6012900","x":495,"y":-309,"width":190,"height":66,"color":"1","type":"text","text":"Синхронизация потоков"},
{"id":"122133d297c625a6","x":672,"y":-562,"width":348,"height":111,"type":"text","text":"Несколько потоков одновременно пытаются изменить одни и те же данные."},
{"id":"b2e7c66362d2fc72","x":486,"y":63,"width":234,"height":50,"color":"1","type":"text","text":"Задачи и async/await"},
{"id":"df6b7033bbe25e22","x":506,"y":-180,"width":428,"height":140,"type":"text","text":"Task(Задача) — Более высокая абстракция над потоками. Задача — это единица работы, которую нужно выполнить."},
{"id":"26f55ba1175bc3c2","x":823,"y":-375,"width":348,"height":174,"type":"text","text":"Создается «критическая секция». Пока один поток выполняет код внутри блока `lock`, остальные потоки ждут своей очереди."},
{"id":"7b9925ae497beca0","x":1108,"y":-110,"width":125,"height":60,"type":"text","text":"`async`"},
{"id":"e5ffb4095152645a","x":983,"y":150,"width":125,"height":60,"type":"text","text":"`await`"},
{"id":"ec3f0b7232c43cc7","x":880,"y":266,"width":404,"height":147,"type":"text","text":"Позволяет потоку не «висеть» в ожидании (например, пока скачивается файл), а освободиться для других дел"}
],
"edges":[
{"id":"c7b769f85c144c7b","fromNode":"6258470f4949a080","fromSide":"left","toNode":"6ccaea3735da0bd3","toSide":"right","color":"1"},
{"id":"f3032b5da3f263bb","fromNode":"6ccaea3735da0bd3","fromSide":"left","toNode":"b4d6842f6fc52332","toSide":"right"},
{"id":"395d4a07a9f49269","fromNode":"b4d6842f6fc52332","fromSide":"top","toNode":"46522dd855aee84b","toSide":"right"},
{"id":"614d33345bc4c671","fromNode":"46522dd855aee84b","fromSide":"bottom","toNode":"8f54d3b1dc116b3e","toSide":"top","label":"выполняется параллельно"},
{"id":"d85855662fe8d996","fromNode":"8f54d3b1dc116b3e","fromSide":"right","toNode":"46522dd855aee84b","toSide":"bottom","label":"точка входа"},
{"id":"5d4a3d44fecefc9f","fromNode":"6ccaea3735da0bd3","fromSide":"bottom","toNode":"aa9ddbf0450d791b","toSide":"top"},
{"id":"85900e487e53f679","fromNode":"aa9ddbf0450d791b","fromSide":"bottom","toNode":"15980de9cff620a8","toSide":"right"},
{"id":"a08a8e0940da671d","fromNode":"6258470f4949a080","fromSide":"bottom","toNode":"696083fd57171c4c","toSide":"top","color":"1"},
{"id":"e777dc328e763a23","fromNode":"696083fd57171c4c","fromSide":"left","toNode":"a9f7ba58d497a048","toSide":"right"},
{"id":"dcb38f6106501b83","fromNode":"a9f7ba58d497a048","fromSide":"bottom","toNode":"867b3b35a8c59d75","toSide":"top"},
{"id":"bd66106705916d05","fromNode":"696083fd57171c4c","fromSide":"bottom","toNode":"9eef8698f2f625ca","toSide":"top"},
{"id":"e28599ebb5bab6d4","fromNode":"9eef8698f2f625ca","fromSide":"bottom","toNode":"e500476e027cc0d2","toSide":"top"},
{"id":"8205c9fda44d6151","fromNode":"696083fd57171c4c","fromSide":"right","toNode":"a8251d2a41f2b441","toSide":"left"},
{"id":"0abf88ea2da651d8","fromNode":"6258470f4949a080","fromSide":"top","toNode":"0113f4493a58b147","toSide":"right","color":"1"},
{"id":"7cb79cfbf398f51d","fromNode":"0113f4493a58b147","fromSide":"bottom","toNode":"d3f42bb28e9feddd","toSide":"top","color":"6"},
{"id":"7c112c179cfb5184","fromNode":"0113f4493a58b147","fromSide":"left","toNode":"52f84d7cbaf95536","toSide":"right"},
{"id":"f6e7f459c77af99d","fromNode":"0113f4493a58b147","fromSide":"left","toNode":"5505e323e62ab27c","toSide":"right"},
{"id":"da485d82ed578f85","fromNode":"0113f4493a58b147","fromSide":"left","toNode":"f8a77d708c80cc47","toSide":"right"},
{"id":"1ee8eb6582379a3a","fromNode":"0113f4493a58b147","fromSide":"top","toNode":"2671739f72233c1a","toSide":"bottom"},
{"id":"b42b8fa72c6eb3cc","fromNode":"0113f4493a58b147","fromSide":"top","toNode":"9577582cbbd5011f","toSide":"left"},
{"id":"81d7b70042362b36","fromNode":"9577582cbbd5011f","fromSide":"top","toNode":"a0d28350ff78c806","toSide":"bottom"},
{"id":"45b0c4446e4c4ff0","fromNode":"9577582cbbd5011f","fromSide":"bottom","toNode":"cbd96f37d745e8cd","toSide":"top"},
{"id":"c84ef67f084ddd8f","fromNode":"6258470f4949a080","fromSide":"right","toNode":"57e32e25c6012900","toSide":"left","color":"1"},
{"id":"e5cf53c22a815c82","fromNode":"57e32e25c6012900","fromSide":"right","toNode":"122133d297c625a6","toSide":"left","label":"Проблема"},
{"id":"11ac9c2fe02c7fb2","fromNode":"122133d297c625a6","fromSide":"bottom","toNode":"26f55ba1175bc3c2","toSide":"top","label":"Решение"},
{"id":"fb57e1e4313c15a1","fromNode":"6258470f4949a080","fromSide":"right","toNode":"b2e7c66362d2fc72","toSide":"left","color":"1"},
{"id":"c66701d934702122","fromNode":"b2e7c66362d2fc72","fromSide":"top","toNode":"df6b7033bbe25e22","toSide":"bottom"},
{"id":"ea93fddb762e8814","fromNode":"b2e7c66362d2fc72","fromSide":"right","toNode":"7b9925ae497beca0","toSide":"left"},
{"id":"de78914f33f88baf","fromNode":"b2e7c66362d2fc72","fromSide":"right","toNode":"e5ffb4095152645a","toSide":"left"},
{"id":"fce885d75dd39b64","fromNode":"e5ffb4095152645a","fromSide":"bottom","toNode":"ec3f0b7232c43cc7","toSide":"top"},
{"id":"eae976012b55c3f9","fromNode":"7b9925ae497beca0","fromSide":"bottom","toNode":"e5ffb4095152645a","toSide":"top","label":"позволяет методу использовать внутри себя"}
]
}