Главная страница
Навигация по странице:

  • Практическая работа № 26 по профессиональному модулюПМ.03 «УЧАСТИЕ В ИНТЕГРАЦИИ ПРОГРАММНЫХ МОДУЛЕЙ»

  • Шаблон работы - Java - ОБРАБОТКА СПИСКА ПАРАМЕТРОВ С ИЗОБРАЖЕНИЯМИ. Практическая работа 26 по профессиональному модулю пм. 03 участие в интеграции программных модулей


    Скачать 36.6 Kb.
    НазваниеПрактическая работа 26 по профессиональному модулю пм. 03 участие в интеграции программных модулей
    АнкорШаблон работы - Java - ОБРАБОТКА СПИСКА ПАРАМЕТРОВ С ИЗОБРАЖЕНИЯМИ
    Дата14.11.2021
    Размер36.6 Kb.
    Формат файлаdocx
    Имя файлаSoftDev_Pract_26__570__Familiya_Imya.docx
    ТипПрактическая работа
    #272069

    ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

    Федеральное государственное бюджетное образовательное учреждение

    высшего образования

    «Санкт – Петербургский государственный университет телекоммуникаций

    им. проф. М.А. Бонч-Бруевича»

    Санкт-Петербургский колледж телекоммуникаций

    Практическая работа № 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 = new ArrayList();

    names.add("Навигационное программное обеспечение.png");

    names.add("Возможность загрузки пробок.png");

    names.add("Поддержка ГЛОНАСС.png");

    // заполняем список со значениями размера изображения в байтах

    List size = new ArrayList();

    size.add(6792);

    size.add(4578);

    size.add(5755);

    // заполняем список со значениями ширины изображения

    List width = new ArrayList();

    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 _size = new ArrayList();

    private List _width = new ArrayList();

    private List _height = new ArrayList();

    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

    Многопоточность представлена следующим образом:…

    Таким образом, представлена информация о всех параметрах изображений…


    написать администратору сайта