Студопедия  
Главная страница | Контакты | Случайная страница

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

Упражнения

Читайте также:
  1. Артикуляционные упражнения для растягивания уздечки языка
  2. Базовые упражнения на меткость
  3. Базовые упражнения на меткость
  4. БЕЗОПАСНЫЕ И УДОБНЫЕ УПРАЖНЕНИЯ ВО ВРЕМЯ ГРУДНОГО ВСКАРМЛИВАНИЯ
  5. Благочестивые упражнения во время молитвы и расслабления духовного.
  6. Глава 18. УПРАЖНЕНИЯ ПО ПОВЫШЕНИЮ УВЕРЕННОСТИ В СЕБЕ
  7. Дыхательные Упражнения Вазы
  8. Задачи и упражнения
  9. Занятие 10. Одноатомные спирты. Тест по теме «Одноатомные спирты». Задачи и упражнения на одноатомные спирты.
  10. Звуковые упражнения

Решения отдельных заданий можно посмотреть в электронной книжке The Thinking in Java Annotated Solution Guide, доступную за небольшую плату на сайте www.BruceEckel.com.

  1. Наследуйте класс от Thread и переопределите метод run(). Внутри run() напечатайте сообщение и вызовите sleep(). Повторите это три раза и выйдете (return) из run(). Поместите приветственное сообщение в конструктор и переопределите finalaize() чтобы вывести прощальное сообщение. Создайте отдельный вызов процесса, назовите его System.gc() и System.runFinalization() внутри run(), напечатав сообщение, так как они выполняются. Создайте несколько объектов от процессов обоих типов и запустите их чтобы посмотреть, что произойдет.
  2. Измените Sharing2.java добавив блок synchronized внутрь метода run() для TwoCounter вместо синхронизации всего run() метода.
  3. Создайте два подкласса Thread, один, использующий run() для запуска, и перехватывающий ссылку на второй процесс Thread, а затем вызывающий wait(). Вызов run() второго класса должен вызывать notifyAll() для первого процесса после нескольких секунд ожидания, так, чтобы первый процесс при этом вывел сообщение.
  4. В Counter5.java внутри Ticker2, удалите yield() и объясните результат работы. Потом замените yield() на sleep() и объясните этот результат.
  5. В ThreadGroup1.java, замените вызов sys.suspend() на вызов wait() для группы процессов, установив для них ожидание в две секунды. Для того чтобы это работало корректно необходимо установить блокировку для sys внутри блока synchronized.
  6. Измените Daemons.java так, чтобы main() был sleep() вместо readLine(). Поэкспериментируйте с различным значением времени засыпания чтобы увидеть что произойдет.
  7. В Главе 8 найдите пример GreenhouseControls.java, состоящий их трех файлов. В Event.java, класс Event основан на наблюдении времени. Замените Event так, чтобы оно стало процессом Thread, и замените весь пример так, чтобы он работал с новым, основанным на Thread событием Event.
  8. Измените Exercise 7 так, чтобы для запуска системы использовался класс java.util.Timer из JDK 1.3.
  9. Начиная с SineWave.java Главы 13, создайте программу (апплет/приложение используя класс Console) рисующих анимированную синусоиду которая движется аналогично тому, как это происходит в осциллографе, перемещая рисунок с помощью Thread. Скорость перемещения должна управляться с помощью элемента управления java.swing.JSlider.
  10. Измените Exercise 9 так, чтобы было создано несколько звуковых панелей внутри приложения. Количество панелей должно контролироваться либо HTML тэгами, либо параметрами из командной строки.
  11. Измените Exercise 9 так, чтобы класс java.swing.Timer использовался для вывода анимации. Обратите внимание на различия с java.util.Timer.

[70] Runnable было введено в Java 1.0, в то время как внутренние классы появились только в Java 1.1, что необходимо принимать во внимание при объяснение причины существования Runnable. Также, традиционная архитектура множества процессов сосредоточена на выполняемых функциях, а не объектах. Я предпочитаю всегда создавать наследника от Thread если возможно; для меня это выглядит более понятно и гибче в использовании.

[71] The Java Programming Language, написано Ken Arnold и James Gosling, Addison-Wesley 1996 pp 179.

 

Thinking in Java - The Java Native Interface (JNI)




Дата добавления: 2015-09-11; просмотров: 13 | Поможем написать вашу работу | Нарушение авторских прав

Синхронизация счетчиков | Повторное обращение к JavaBeans | Установка блокировки | Ожидание и уведомление | Тестирование | Запрещение stop( ), suspend( ), resume( ), и destroy( ) в Java 2 | Чтение и установка приоритетов | Группы процессов | Управление группами процессов | Повторное изучение Runnable |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав