|
|
(не показаны 4 промежуточные версии 2 участников) |
Строка 1: |
Строка 1: |
− | ;Ведущий: Дутиков Михаил | + | ;Ведущий: [http://ru.linkedin.com/pub/mikhail-dutikov/54/31a/50b Дутиков Михаил] |
| ;Дата:ноябрь 2011 | | ;Дата:ноябрь 2011 |
| | | |
− | [[Категория:Дутиков Михаил (семинары по автору)]] | + | [[Категория:Параллельное программирование (доклады)]] |
− | [[Категория:2011 (семинары по годам)]]
| + | |
| | | |
| == Аннотация == | | == Аннотация == |
Строка 38: |
Строка 37: |
| | | |
| {{vimeoembed|35331024|800|410}} | | {{vimeoembed|35331024|800|410}} |
| + | |
| + | <blockquote> |
| + | Неточности, допущенные автором в этом семинаре, будут исправлены в следующем (см. [[Многопоточные приложения (.Net, Windows) (часть вторая) (семинар 2012-06-19)]]). |
| + | |
| + | В частности, будет уточнение насчет инкремента и машинного кода, производимого JIT-компилятором (и сопоставления программы одному ядру процессора). Будет уточнение насчет старого ReaderWriterLock — к дедлокам все же он не приводит. |
| + | |
| + | Еще будет уточнение насчет брошенных мьютекстов: система следит за ними менее пристально, чем утверждает автор в этом семинаре. Будут и другие, менее значительные уточнения. |
| + | </blockquote> |
| | | |
| {{vimeoembed|35331104|800|410}} | | {{vimeoembed|35331104|800|410}} |
Текущая версия на 22:03, 12 июля 2012
- Ведущий
- Дутиков Михаил
- Дата
- ноябрь 2011
Аннотация
Разработка многопоточных приложений на .Net под Windows: основы
Многопоточные приложения и машины с многоядерными процессорами повсюду. Уметь писать многопоточные приложения сегодня крайне важно, будь вы server-side программист или разработчик desktop-приложений.
На этом (вводном в предмет) семинаре мы поговорим о том, как Windows управляет ресурсами процессоров, чтобы делать ту кучу всего, что она делает. Поговорим о системе приоритетов и о том, как она работает. Поглядим на кванты, потоки, переключения контекста.
Затем перейдем со стороны операционной системы на сторону .Net и посмотрим на те вещи (местами страшные), которые торчат в сторону разработчиков .Net. Научимся организовывать взаимодействие потоков так, чтобы оно было корректным и эффективным (вопросов оптимизации и масштабируемости коснемся лишь слегка -- предмет отдельного разговора): тут покопаемся в примитивах синхронизации, некоторые вскроем.
Разберем некоторые важные сценарии использования потоков. В том числе и вопрос -- создавать потоки явно или использовать пул? Немного покопаемся в пуле и поглядим на задачи, которые он облегчает. Посмотрим, чем он хорош и плох.
Отдельно (краем глаза) поглядим на то, какие архитектурные паттерны существуют в области многопоточного программирования. В основном на те, что касаются создания потокобезопасного кода. Остановимся на уровне классов.
Краткое содержание (по темам):
- Потоки в Windows, кванты, приоритеты, переключения контекста, планировщик.
- Потоки в .Net. Явное создание и взаимодействие.
- Архитектура многопоточных приложений (уровень классов). Управление состоянием. Изоляция, неизменяемость, синхронизация.
- Синхронизация: объекты ядра, пользовательского режима, гибриды. Сценарии использования.
- Потокобезопасный код.
- Пул потоков.
- Таймеры.
- Исключения.
Исходники -- Файл:MultithreadingSeminar1.zip.
Слайды -- Файл:Multithreading.Seminar1.pptx.
Материалы
Неточности, допущенные автором в этом семинаре, будут исправлены в следующем (см. Многопоточные приложения (.Net, Windows) (часть вторая) (семинар 2012-06-19)).
В частности, будет уточнение насчет инкремента и машинного кода, производимого JIT-компилятором (и сопоставления программы одному ядру процессора). Будет уточнение насчет старого ReaderWriterLock — к дедлокам все же он не приводит.
Еще будет уточнение насчет брошенных мьютекстов: система следит за ними менее пристально, чем утверждает автор в этом семинаре. Будут и другие, менее значительные уточнения.
Внимание! Данная статья выбрана для репликации во внешнюю базу знаний компании. Пожалуйста, не допускайте в этой статье публикацию конфиденциальной информации, ведения обсуждений в теле статьи, и более ответственно относитесь к качеству самой статьи — проверяйте орфографию, пишите по-русски, избегайте непроверенной вами информации.