Многопоточность
Offered By: Moscow Institute of Physics and Technology via Coursera
Course Description
Overview
Данный курс посвящен изучению многопоточности. В начале курса вы узнаете, что такое многопоточность, плюсы и минусы ее использования, а также разберетесь как решать возникающие проблемы такие как Deadlock, Livelock и другие.
Далее в курсе вы познакомитесь как с низкоуровневыми API для работы с многопоточностью - POSIX и NSThread, так и с высокоуровневыми API - Grand Central Dispatch и OpetationQueue.
В завершении курса вы научитесь работать с instruments, a также со встроенными в Xcode средствами для обнаружения утечек памяти и проблем производительности в приложении.
Далее в курсе вы познакомитесь как с низкоуровневыми API для работы с многопоточностью - POSIX и NSThread, так и с высокоуровневыми API - Grand Central Dispatch и OpetationQueue.
В завершении курса вы научитесь работать с instruments, a также со встроенными в Xcode средствами для обнаружения утечек памяти и проблем производительности в приложении.
Syllabus
- Многопоточность
- На первой неделе мы начнем знакомиться с многопоточностью. Мы расскажем что это такое, а также рассмотрим плюсы и минусы ее использования в приложении. Также мы рассмотрим основные проблемы многопоточности такие как: Race Condition, Deadlock, Livelock и другие.
- Потоки
- Вторая неделя посвящена работе с потоками. Мы расскажем вам про низкоуровневые API для работы с потоками: POSIX и NSThreads, рассмотрим варианты синхронизации потоков, а также работу в фоновом режиме. В дополнении к этой теме мы познакомим вас с RunLoop, Autorelease pool и Timer.
- GCD
- Третья неделя посвящена высокоуровневому API для работы с многопоточностью GCD - Grand Central Dispatch. Мы расскажем про работу с GCD, про глобальные, последовательные и параллельные очереди, про приоритеты в очередях, а также про синхронное и асинхронное выполнение задач. Далее, развивая эту тему, мы расскажем про средства синхронизации в GCD: барьеры, семафоры и группы. В завершении этой темы вы научитесь как использовать Core Image вместе с GCD для применения фото фильтров.
- Operations
- На четвертой неделе мы расскажем об Operations и Operations Queue. Это еще одно высокоуровневое API для создания многопоточного кода без взаимодействия с потоками напрямую. Оно предоставляет возможность выстраивать зависимости между операциями. Вы научитесь создавать собственные сабклассы Operations, а также использовать CIFilters вместе с Operations.
- Проблемы и решения
- На пятой неделе мы расскажем об оптимизации приложений. Вы узнаете о профилировании приложений с помощью Instruments. С их помощью вы научитесь искать утечки памяти и проблемы производительности в приложении. Также вы научитесь работать со встроенным в Xcode средством поиска ошибок - thread sanitiser.
- Курсовое задание
- На 6 неделе вы продолжите работу над своим приложением. Основным нововведением будет публикация новых фотографий и наложение фильтров на фото
Taught by
Илья Кулебякин, Ильдар Гильфанов and Юрий Петухов
Related Courses
Android-разработка: основы, многопоточность, архитектураMoscow Institute of Physics and Technology via Coursera Основы разработки на C++: красный пояс
Moscow Institute of Physics and Technology via Coursera Operating Systems: Processes
Codecademy LAFF-On Programming for High Performance
The University of Texas at Austin via edX Core Java for Complete Beginners
LearnKartS via Coursera