Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Множественные нити выполнения (Multiple threads)





Все современные операционные системы (ОС) работают в мультипрограммном режиме, когда параллельно на одном компьютере выполняются много различных программ. ОС организует переключение между ними, деля время процессора (или процессоров) между различными программами. Все это происходит, так сказать, за сценой. А для пользователя это выглядит как параллельное выполнение нескольких программ одновременно.

Существует два под-варианта реализации мультипрограммного режима работы — при помощи задач (многозадачная или мультизадачная обработка) и при помощи нитей или потоков (мультипотоковая обработка). При этом они могут сосуществовать параллельно. Не вдаваясь в подробности, можно сказать, что мультизадачная обработка более громоздкая и сложная, но имеет больше возможностей. Каждой задаче выделяется свое пространство памяти. В отличии от задач, нити более легковесны и работают все на одном пространстве памяти.

Каждый из этих режимов имеет свое применение. В рамках конкретной ОС существуют те или иные верхнеуровневые механизмы создания задач. Так, запуская программу в Windows, мы тем самым запускаем задачу. Параллельно мы можем запустить другие программы. Для запуска нитей также существуют механизмы операционной системы. Но нити — это параллельные процессы в рамках одной программы. Соответственно, никаких верхнеуровневых (доступных обычному пользователю) средств для запуска нитей нет и быть не может. Эти механизмы могут быть доступны только в рамках той или иной системы программирования.

Термин thread можно перевести и как поток, и как нить. Но в английском есть термин stream, который тоже переводится, как поток и применяется тогда, когда речь идет о потоках ввода/вывода. Поэтому, для однозначности, для thread мы будем использовать перевод нить. В то же время, термин мульти-какая-то-там-нитяная обработка в русском языке сформировать нельзя. Поэтому мы будем использовать мультипотоковая обработка. Неоднозначность здесь не возникает, т.к. к потокам ввода/вывода приставка мульти- обычно не применяется.

В Java реализована полная поддержка нитей. Более того, сама стандартная библиотека Java во многом опирается на мультипотоковую обработку. И многие программы, даже не использующие явно средства организации нитей, тем не менее, работают в мультипотоковой среде. Это, в частности, относится ко всем диалоговым программам. Как пакет AWT, так и пакет Swing существенно используют мультипотоковую обработку.

Простейшим способом создания нити является создание класса производного от класса Thread. В этом классе нужно переопределить метод run, потом породить объект созданного класса и вызвать его метод start. С этого момента начнет свое существование новая нить. Она будет выполняться параллельно с другими нитями, конкурируя с ними за время процессора. Метод start выполняет системные действия по созданию нити, после чего вызывает переопределенный нами метод run. Когда произойдет выход из метода run нить завершит свою работу.







Date: 2015-10-18; view: 378; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию