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 руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги

Рассмотрим более подробно исходный код программы, имитирующей работу часов. В ее основу положен класс TickTock. В нем содержатся два метода tick () и tock (), которые взаимодействуют друг с другом. Это взаимодействие организовано таким образом, чтобы за словом "Tick” всегда следовало слово "Tock", затем слово "Tick" и т.д. Обратите внимание на переменную state. В процессе работы имитатора часов в данной переменной хранится строка "ticked" или "tocked", определяющая текущее состояГлава 1 1. Многопоточное программирование 41.1 ние часов после такта “тик” или/‘так” соответственно. В методе main () создается объект tt типа TickTock, используемый для запуска двух потоков на исполнение.

Потоки строятся на основе объектов типа MyThread. Конструктору MyThread () передаются два параметра. Первый из них задает имя потока (в данном случае — "Tick" или "Тоск"), а второй — ссылку на объект типа TickTock (в данном случае — объект tt). В методе run () из класса MyThread вызывается метод tick (), если поток называется "Tick", или же метод tock(), если поток называется "Тоск". Каждый из этих методов вызывается пять раз с параметром, принимающим логическое значение true. Работа имитатора часов продолжается до тех пор, пока методу передается параметр с логическим значением true. Последний вызов каждого из методов с параметром, принимающим логическое значение false, останавливает имитатор работы часов.

Самая важная часть программы находится в теле методов tick () и tock () из класса TickTock. Начнем с метода tick (). Для удобства анализа ниже представлен исходный код этого метода.

synchronized void tick(boolean running) {

if(!running) { // остановить часы

state = "ticked";

notifyO; // уведомить ожидающие потоки

return;

}

System.out.print("Tick ");

state = "ticked"; // установить текущее состояние после такта "тик"

notify(); // уведомить метод tock() о возможности продолжить выполнение

try {

while(!state.equals("tocked") )

wait(); // ожидать завершения метода tock()

}

catch(InterruptedException exc) {

System.out.println("Thread interrupted.");

}

}

Прежде всего обратите внимание на то, что в объявлении метода tick () присутствует ключевое слово synchronized, указываемое в качестве модификатора доступа. Как пояснялось ранее, действие методов wait () и notify () распространяется только на синхронизированные методы. В начале метода tick () проверяется значение параметра running. Этот параметр служит для корректного завершения программы, имитирующей работу часов. Если он принимает логическое значение false, имитатор работы часов должен быть остановлен. Если же параметр running принимает логическое значение true, а переменная state — значение "ticked", вызывается метод notify (), разрешающий ожидающему потоку возобновить свое исполнение. Мы еще вернемся к этому вопросу несколько ниже.

По ходу работы имитируемых часов в методе tick () выводится слово "Tick", переменная state принимает значение "ticked", а затем вызывается метод notify (). Вызов метода notify () возобновляет исполнение ожидающего потока. Далее в цикле while вызывается метод wait (). В итоге выполнение метода tick () будет приостановлено до тех пор, пока другой поток не вызовет метод notify (). Таким образом, очередной шаг цикла не будет выполнен до тех пор, пока другой поток не вызовет метод notify() для того же самого объекта. Поэтому когда вызывается метод tick (), на экран выводится слово "Tick" и другой поток получает возможность продолжить свое исполнение, а затем выполнение этого метода приостанавливается.

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