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

Для того чтобы стала понятнее потребность в применении методов wait () и notify () в многопоточном программировании, рассмотрим пример программы, имитирующей работу часов и выводящей на экран слова "Tick" (Тик) и "Тоск" (Так). Для этой цели создадим класс TickTock, который будет содержать два метода: tick () и tock (). Метод tick () выводит слово "Tick", а метод tock () — слово "Тоск". При запуске программы, имитирующей часы, создаются два потока: в одном из них вызывается метод tick (), а в другом — метод tock (). В результате взаимодействия двух потоков на экран будет выводиться набор повторяющихся сообщений "Tick Tock", т.е. после слова "Tick", обозначающего один такт, должно следовать слово "Тоск", обозначающее другой такт часов.

// Применение методов wait() и notifyO для имитации часов,

class TickTock {

String state; // содержит сведения о состоянии часов

synchronized void tick(boolean running) {

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

state = "ticked";

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

return;

}

System.out.print("Tick ");

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

notify(); // Метод tick() уведомляет метод tock()

// о возможности продолжить выполнение.

try {

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

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

}

catch(InterruptedException exc) {

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

}

}

synchronized void tock(boolean running) {

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

state = "tocked";

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

return;

}

System.out.println("Tock");

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

notifyO; // Метод tock() уведомляет метод tick()

// возможности продолжить выполнение.

try {

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

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

}

catch(InterruptedException exc) {

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

}

}

}

class MyThread implements Runnable {

Thread thrd;

TickTock ttOb;

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

MyThread.(String name, TickTock tt) {

thrd = new Thread(this, name);

ttOb = tt;

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

}

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

public void run() {

if(thrd.getName().compareTo("Tick") == 0) {

for(int i=0; i<5; i++) ttOb.tick(true);

ttOb.tick(false);

}

else {

for(int i=0; i<5; i++) ttOb.tock(true);

ttOb.tock(false);

}

}

}

class ThreadCom {

public static void main(String args[]) {

TickTock tt = new TickTock();

MyThread mtl = new MyThread("Tick", tt);

MyThread mt2 = new MyThread("Tock", tt);

try {

mtl.thrd.join();

mt2.thrd.join();

} catch(InterruptedException exc) {

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

}

}

}

В результате выполнения этой программы на экране появляются следующие сообщения:

Tick Tock

Tick Tock

Tick Tock

Tick Tock

Tick Tock

`

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