Knigionline.co » Программное обеспечение » Java руководство для начинающих

Java руководство для начинающих - Шилдт Герберт (2012)

Java руководство для начинающих
  • Год:
    2012
  • Название:
    Java руководство для начинающих
  • Автор:
  • Жанр:
  • Оригинал:
    Английский
  • Язык:
    Русский
  • Издательство:
    Вильямс
  • Страниц:
    316
  • ISBN:
    978-5-8459-1770-6
  • Рейтинг:
    4.3 (4 голос)
  • Ваша оценка:
"Java: руководство для начинающих", автором которого является Герберт Шилдт, а также на его счету популярные по всему миру книги по языкам программирования, таким образом, чтобы у читателя получилось быстро освоить основные навыки программирования на Java. Полностью обновленное по версии Java Platform, Standard Edition 7, пятое издание этого учебного пособия начинается с обзора самых простейших основ, не исключая выполнение простых программ на Java и компилирование. Далее в нем описаны синтаксические конструкции и ключевые слова составляющие основу Java как языка программирования. Затем следует изложение наиболее передовых языковых средств Java, включая многопоточное и обобщенное программирование. Книга завершается введением в библиотеку Swing. Использованный в книге справочный и учебный материал позволяет читателю быстро и легко освоить основы программирования на Java. В целях упрощения процесса изучения Java, учебник построен следующим образом: - Базовые понятия и навыки. Все главы начинаются с перечня базовых понятий и навыков, которые будет необходимо усвоить читателю. - Обращение к знатоку. Во врезках под этим заголовком даны полезные рекомендации в форме вопрос-ответ. - Примеры для опробования. Это примеры небольших проектов, наглядно показывающие, как применять полученные навыки и знания на практике. - Упражнения для самопроверки. В конце каждой главы присутствуют контрольные вопросы и задания для проверки прочности изученного материала. - Подробные комментарии к примерам программ. Все примеры программ в этом учебном пособии снабжены подробными комментариями, которые описывают приемы программирования Java и демонстрируемые языковые средства.

Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги

В предыдущем примере был создан только один порожденный поток. Но в программе можно породить столько потоков, сколько требуется. Например, в приведенной ниже программе формируются три порожденных потока.

// Создание нескольких потоков.

class MyThread implements Runnable {

Thread thrd;

// построить новый поток

MyThread(String name) {

thrd = new Thread(this, name);

thrd.start(); // начать поток

}

// начать исполнение нового потока

public void run() {

System.out.println(thrd.getName() + " starting.");

try {

for(int count=0; count < 10; count++) {

Thread.sleep(400);

System.out.println("In " + thrd.getName() +

", count is " + count);

}

}

catch(InterruptedException exc) {

System.out.println(thrd.getName() + " interrupted.");

}

System.out.println(thrd.getName() + " terminating.");

}

}

class MoreThreads {

public static void main(String args[]) {

System.out.println("Main thread starting.");

// Создание и запуск на исполнение трех потоков.

MyThread mtl = new MyThread("Child #1");

MyThread mt2 = new MyThread("Child #2");

MyThread mt3 = new MyThread("Child #3");

for (int i=0; i < 50; i++) {

System.out.print(".");

try {

Thread.sleep(100);

}

catch(InterruptedException exc) {

System.out.println("Main thread interrupted.");

}

}

System.out.println("Main thread ending.");

}

}

Ниже приведен результат выполнения данной программы.

Main thread starting.

Child #1 starting.

.Child #2 starting.

Child #3 starting.

...In Child #3, count is О

In Child #2, count is 0

In Child #1, count is 0

....In Child #1, count is 1

In Child #2, count is 1

In Child #3, count is 1

....In Child #2, count is 2

In Child #3, count is 2

In Child #1, count is 2

...In Child #1, count is 3

In Child #2, count is 3

In Child #3, count is 3

....In Child #1, count is 4

In Child #3, count is 4

In Child #2, count is 4

....In Child #1, count is 5

In Child #3, count is 5

In Child #2, count is 5

...In Child #3, count is 6

.In Child #2, count is 6

In Child #1, count is 6

...In Child #3, count is 7

In Child #1, count is 7

In Child #2, count is 7

....In Child #2, count is 8

In Child #1, count is 8

In Child #3, count is 8

....In Child #1, count is 9

Child #1 terminating.

In Child #2, count is 9

Child #2 terminating.

In Child #3, count is 9

Child #3 terminating.

Main thread ending.

Как видите, после запуска на исполнение все три потока совместно используют ресурсы ЦП. Следует иметь в виду, что потоки в данном примере запускаются на исполнение в том порядке, в каком они были созданы. Но так происходит не всегда. Исполняющая система Java сама планирует исполнение потоков. Вследствие отличий в вычислительных средах у вас может получиться несколько иной результат.

Определение момента завершения потока

Нередко требуется знать, когда завершится поток. Так, в приведенных выше примерах ради большей наглядности нужно было поддерживать основной поток действующим до тех пор, пока не завершатся остальные потоки. Для этой цели основной поток переводился в состояние ожидания на более продолжительное время, чем порожденные им потоки. Но такое решение вряд ли можно считать удовлетворительным или общеупотребительным!

Правда, в классе Thread предусмотрены два средства, позволяющие определить, завершился ли поток. Первым из них является метод is Alive (), объявление которого приведено ниже.

final boolean isAlive()

Перейти
Наш сайт автоматически запоминает страницу, где вы остановились, вы можете продолжить чтение в любой момент
Оставить комментарий