многопоточность джава. многопоточность. Класс Thread в java функциональность отдельного потока заключается в классе Thread
Скачать 340.19 Kb.
|
Реализация интерфейса RunnableДругой способ определения потока представляет реализация интерфейса Runnable. Этот интерфейс имеет один метод run:
В методе run() собственно определяется весь тот код, который выполняется при запуске потока. После определения объекта Runnable он передается в один из конструкторов класса Thread:
Для реализации интерфейса определим следующий класс MyThread:
Реализация интерфейса Runnable во многом аналогична переопределению класса Thread. Также в методе run определяется простейший код, который усыпляет поток на 500 миллисекунд. В методе main вызывается конструктор Thread, в который передается объект MyThread. И чтобы запустить поток, вызывается метод start(). В итоге консоль выведет что-то наподобие следующего: Main thread started... Main thread finished... MyThread started... MyThread finished... Поскольку Runnable фактически представляет функциональный интерфейс, который определяет один метод, то объект этого интерфейса мы можем представить в виде лямбда-выражения:
Примеры потоков ранее представляли поток как последовательный набор операций. После выполнения последней операции завершался и поток. Однако нередко имеет место и другая организация потока в виде бесконечного цикла. Например, поток сервера в бесконечном цикле прослушивает определенный порт на предмет получения данных. И в этом случае мы также можем предусмотреть механизм завершения потока. |