Нишки - Многонишково Програмиране
- Теория
- Код
Многонишково Програмиране: Основи и Концепции
Многозадачност и Нейните Видове
Многоезичността е възможността на една система да изпълнява няколко задачи едновременно. Тя може да бъде реализирана чрез многозадачност на процеси или нишки.
-
Многозадачност на Процеси: Свързана със споделяне на хардуерни ресурси и паралелно изпълнение на независими процеси.
- Паралелност: Изпълнение на няколко процеса едновременно.
- Конкурентност: Изпълнение на няколко процеса в рамките на един процесор.
Примери за многозадачност на процеси са операционни те системи, които изпълняват множество процеси едновременно. Те се грижат за управлението на ресурсите и разпределянето на времето за изпълнение на процесите. Само Google Chrome изпълнява множество процеси едновременно, като всеки от тях е отговорен за отделна отворена страница, което е и причина за неговата голяма консумация на ресурси.
-
Многозадачност на Нишки: Споделяне на ресурси на процеса и изпълнение на множество задачи в рамките на една програма.
- Паралелност: Изпълнение на няколко нишки едновременно.
- Конкурентност: Изпълнение на няколко нишки в рамките на един процесор.
Примери за многозадачност на нишки са Java приложенията, които изпълняват множество нишки едновременно. Те се грижат за управлението на ресурсите и разпределянето на времето за изпълнение на нишките. Всяка нишка е отговорна за определени задачи, като те се изпълняват независимо една от друга. Пример за това е едно конзолно приложение в което имам озвучаване на игра, като възпроизвеждането на звука се извършва в отделна нишка, докато в друга нишка се изпълнява логиката на играта.
Дефиниции и Свойства
- Нишка: Лека подединица на процеса, която изпълнява определени задачи.
- Главна Нишка: Свързана с
main()
метода на приложението, отговаря за управлението на другите нишки. - Независимо Изпълнение: Всяка нишка работи независимо, управлявайки своя собствен стек.
Видове изпълнение
- Последователни Процеси: Изпълнението следва строга последователност.
- Паралелни Процеси: Процесите се изпълняват едновременно.
- Паралелни Процеси с Много Нишки: Комбинация от множество нишки за оптимизиране на производителността.