Побудова програм потоків за допомогою стандартних бібліотек Java.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут післядипломної освіти
Факультет:
ЗІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Інші

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет «Львівська політехніка» Інститут Післядипломної освіти / Звіт про виконання ЛАБОРАТОРНОЇ РОБОТИ №3 з курсу " Програмне забеспечення мережевих технологій " Тема. «Побудова програм потоків за допомогою стандартних бібліотек Java.». Тема: Побудова програм потоків за допомогою стандартних бібліотек Java. Мета: Освоїти елементи програмування мовою JAVA, , а також засвоїти класи і методи графічної бібліотеки awt (swing). Теоретичні відомості Організація потоків в середовищі Java дозволяє домогтися приросту продуктивності практично в усіх програмах. Розробка додатків на основі потоків, тобто особливих послідовностей команд , забезпечує значний приріст продуктивності. Розглянемо , наприклад , програму -програвач DVD , яка зчитує великі обсяги даних з компакт- диска, обробляє їх і виводить зображення на екран. Звичайні однопоточні програми - а це більшість сучасних клієнтських програм - виконують перераховані дії послідовно . У даному прикладі обробка даних розпочнеться лише після того, як з диска буде лічений певний обсяг інформації. Продуктивність такої програми невисока: ресурси, які можуть використовуватися для обробки, що не будуть задіяні, поки йде зчитування наступної порції інформації з диска. У багатопотокової версії програвача один потік призначався б для зчитування інформації , другий - для обробки, а третій - для запису даних у видеобуфер, причому всі вони виконувалися б паралельно , а обробка тривала б навіть під час читання з диска - приріст продуктивності. Можна навести ще багато прикладів , коли одночасне виконання кількох дій призводить до підвищення продуктивності системи. Саме для збільшення продуктивності і реалізована багатопоточність у віртуальній машині Java ( JVM ). При запуску будь-якої програми утворюється , принаймні , один потік . В С / С + + і Java цей потік запускається при виклику методу main ( ) . Для створення додаткових потоків необхідно їх запустити і призначити їм певні функції , після виконання яких потоки автоматично будуть завершені віртуальною машиною . У середовищі Java для створення потоку та призначення їм функцій є два способи . Першим з них є успадкування від класу Thread ( входить у пакет java.lang ) з наступним перевизначенням методу run ( ) на функцію , яку ви хочете призначити для потоку . Нижче наведено приклад коду : public class SimpleThread extends Thread { public SimpleThread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + " " + getName()); try { sleep((long)(Math.random() * 1000)); } catch (InterruptedException e) {} } System.out.println("DONE! " + getName()); } } Таким чином, відбувається спадкування від класу Thread із запуском перевизначеного методу run (). Призначена функція організовує цикл, при якому на екран виводиться рядок, після чого програма зупиняється на випадковий інтервал часу. Після 10 ітерацій циклу на екран виводиться слів "DONE!", А потік завершується, оскільки функція закінчила своє виконання. Нижче наведено приклад функції для створення потоку: ublic class TwoThreadsDemo { public static void main (String[] args) { new SimpleThread("Do it!").start(); new SimpleThread("Definitely not!").start(); } } Код простий: запускається функція з ім'ям, яке виводитиметься на екран, а потім викликається метод start (), який, у свою чергу, викличе метод run (). Результат виконання програми нескладно передбачити. 2. Умова завдання Створити JAVA потоки декількох годиннніків. 3. Виконання роботи Код JAVA-аплету: import java.awt.*; import java.applet.*; import java.applet.*; import java.awt.*; import java.util.*; public class ClockApplet extends Applet implements Runnable{ Thread t,t1,t2,t3; public void start(){ t = new Thread(this); t2 = new Thread(this); t.start(); t2.start(); } public void run(){ t1 = Thread.currentThread(); t3= Thread.currentThread(); while((t1 == t)||(t2 == t3)){ repaint(); //repaint(); try{ t1.sleep(500); //t3.sleep(500); } catch(InterruptedException e){} repaint(); try{ //t1.sleep(500); t3.sleep(500); } catch(InterruptedException e){} } } public void paint(Graphics g){ Calendar cal = new GregorianCalendar(); String hour = String.valueOf(cal.get(Calendar.HOUR)); String minute = String.valueOf(cal.get(Calendar.MINUTE)); String second = String.valueOf(cal.get(Calendar.SECOND)); g.drawString(hour + ":" + minute + ":" + second, 20 , 30); g.drawString(hour + ":" + minute + ":" + second, 80 ,100); } } Створимопростеньку html-сторінку для відображення та виконання нашого аплету: <HTML> <HEAD> </HEAD> <BODY BGCOLOR="000000"> <CENTER> <APPLET code = " ClockApplet.class" width = "500" height = "300"> </APPLET> </CENTER> </BODY> </HTML> 4. Результат виконання програми Відкомпілюємо java-код, за допомогою утиліти javac (рис.1) в проміжний код JVM та запустимо та переглянемо результат завершеної роботи, за допомогою утиліти appletviewer (рис.2). Рис.1. Виконання утиліт javac та appletviewer / Рис.2. Викоанання аплету Висновок. Виконуючи дану лабораторну роботу я ознайомився з принципами програмування мовою JAVA, використання базовийх можливості багатопоточності, освоїв принципи побудови аплетів, а також засвоїв класи і методи бібліотек java.awt, java.applet.
Антиботан аватар за замовчуванням

02.06.2014 21:06-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!