Содержание
- 2. Базовые сведения Go – язык системного программирования нового поколения. Был задуман в сентябре 2007 ребятами из
- 3. Немного о хороших людях Кен Томпсон Робертом Грисемер Роб Пайк
- 4. Создатели языка (слева направо): Роберт Грисемер, Роб Пайк, Кен Томпсон на Google I/O, 2012
- 5. Происхождение Go
- 6. Происхождение Go
- 7. Происхождение Go
- 8. Происхождение Go
- 9. Происхождение Go
- 10. Происхождение Go
- 11. Немного подушним по теории Давайте немного разберемся в терминах, которые многие путают
- 12. Параллелизм Это выполнение двух задач на двух разных исполняющих устройствах. Поток выполнения Поток выполнения
- 13. Конкурентность Это свойство системы, позволяющее ей обрабатывать несколько задач в пересекающихся периодах времени.
- 14. Многозадачность Это возможность операционной системы работать с несколькими задачами одновременно. 2. Кооперативная многозадачность (Cooperative Multitasking) 1.
- 15. Асинхронность Это концепция, которая позволяет выполнять операции или функции параллельно и не блокирует выполнение других операций.
- 16. Concurrency is not parallelism Concurrency is about dealing with lots of things at once. Parallelism is
- 17. Concurrency plus communication Concurrency is a way to structure a program by breaking it into pieces
- 18. Go поддерживает конкурентность Go дает: Конкурентное выполнение (горутины) Синхронизацию и сообщения (каналы) Параллельное многозадачное управление (select)
- 19. Горутины Горутиныа— это абстракция в языке Go, которая позволяет запускать функции в асинхронном режиме. Горутина —
- 20. main – это тоже горутина
- 21. Горутины это не потоки (Они чем-то похожи на потоки, но намного дешевле.) Горутины мультиплексируются в потоки
- 22. Планировщик в Go G G G GRQ Core M G P G G G LRQ
- 23. Каналы Каналы в Go являются мощным инструментом для обмена данными между горутинами, обеспечивая безопасность данных и
- 24. Select Оператор select похож на switch, но идея основана на возможности общения, а не на равных
- 25. Дедлоки и Мьютексы
- 27. Race detector Race Detector (детектор гонок) в Go — это инструмент, предоставляемый компилятором Go для выявления
- 30. Паттерны синхронизации в Go
- 31. Наивный пример использования асинхронности Таск: необходимо получить данные с нескольких сайтов(Get)
- 34. Отличие асинхронности в Go по сравнению с другими языками Модель Проектирования(CSP): Отсутствие Явного Указания Async/Await:
- 36. Паттерны конкурентности в Go
- 37. Worker pool
- 38. Worker pool
- 39. Worker pool
- 40. Итоги Горутины и каналы Мультиплекси-рование ввода/вывода Преимущества асинхронности Стандартная библиотека Контроль над ресурсами Простота и понятность
- 42. Скачать презентацию