Шаблон работы - Java - ОБРАБОТКА СПИСКА ПАРАМЕТРОВ С ИЗОБРАЖЕНИЯМИ. Практическая работа 26 по профессиональному модулю пм. 03 участие в интеграции программных модулей
Скачать 36.6 Kb.
|
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Санкт – Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича» Санкт-Петербургский колледж телекоммуникаций Практическая работа № 26 по профессиональному модулю ПМ.03 «УЧАСТИЕ В ИНТЕГРАЦИИ ПРОГРАММНЫХ МОДУЛЕЙ» Студент гр. 570 ______________________________ И. О. Фамилия (подпись) Проверил ___________________________ А. В. Параничев (оценка и подпись) Санкт-Петербург 2019 год Практическая работа № 26 Порождающий шаблон Синглетон ОБРАБОТКА СПИСКА ПАРАМЕТРОВ С ИЗОБРАЖЕНИЯМИ Обработаем список всех параметров с изображениями, используя многопоточность в Java. Соответствующий Java-код (https://rextester.com/l/java) будет выглядеть следующим образом: //'main' method must be in a class 'Rextester'. //Compiler version 1.8.0_111 import java.util.*; import java.lang.*; import java.io.*; class Rextester { public static final int INDEX_SIZE = 0; public static final int INDEX_WIDTH = 1; public static final int INDEX_HEIGHT = 2; public static void main(String[] args) // throws Exception { // заполняем список с изображениями параметров List names.add("Навигационное программное обеспечение.png"); names.add("Возможность загрузки пробок.png"); names.add("Поддержка ГЛОНАСС.png"); // заполняем список со значениями размера изображения в байтах List size.add(6792); size.add(4578); size.add(5755); // заполняем список со значениями ширины изображения List width.add(50); width.add(45); width.add(48); for (int i = 0; i < names.size(); i++) { System.out.println(names.get(i)); PngData s = PngData.getInstance(); s.addData(INDEX_SIZE, size.get(i)); s.addData(INDEX_WIDTH, width.get(i)); s.addData(INDEX_HEIGHT, -1); } PngData s = PngData.getInstance(); s.showByIndex(Rextester.INDEX_SIZE); s.showByIndex(Rextester.INDEX_WIDTH); s.showByIndex(Rextester.INDEX_HEIGHT); //++ multithreading BEGIN System.out.println("Multithreading"); s.current_i=0; for (int i = 0; i < names.size(); i++) { System.out.println(names.get(i)); Thread th = new Thread(PngData.getInstance()); th.start(); // s.current_i++; } //++ multithreading END } } class PngData implements Runnable //++ multithreading { public int current_i = 0; //++ multithreading private List private List private List public void addData(int index, int value) { switch(index) { case Rextester.INDEX_SIZE: _size.add(value);break; case Rextester.INDEX_WIDTH: _width.add(value);break; case Rextester.INDEX_HEIGHT: _height.add(-1);break; } } public void run() //++ multithreading BEGIN { try { System.out.println(); System.out.println(_size.get(current_i)); System.out.println(_width.get(current_i)); System.out.println(_height.get(current_i)); current_i++; } catch (Exception e) { System.out.println(e); } } //++ multithreading END synchronized public void showByIndex(int index) { switch(index) { case Rextester.INDEX_SIZE: for (int i = 0; i < _size.size(); i++) {System.out.println(_size.get(i));}break; case Rextester.INDEX_WIDTH: for (int i = 0; i < _width.size(); i++) {System.out.println(_width.get(i));} break; case Rextester.INDEX_HEIGHT: for (int i = 0; i < _height.size(); i++) {System.out.println(_height.get(i));}break; } } // BEGIN OF singleton pattern private volatile static PngData uniqueInstance; private PngData() {} public static PngData getInstance() { if (uniqueInstance == null) { synchronized (PngData.class) { if (uniqueInstance == null) { uniqueInstance = new PngData(); } } } return uniqueInstance; } // END OF singleton pattern } РЕЗУЛЬТАТ ВЫПОЛНЕНИЯ JAVA-КОДА В результате выполнения Java-кода получим следующий результат на экране: Навигационное программное обеспечение.png Возможность загрузки пробок.png Поддержка ГЛОНАСС.png 6792 4578 5755 50 45 48 -1 -1 -1 Multithreading Навигационное программное обеспечение.png Возможность загрузки пробок.png 6792 50 -1 Поддержка ГЛОНАСС.png 4578 45 -1 5755 48 -1 Многопоточность представлена следующим образом:… Таким образом, представлена информация о всех параметрах изображений… |