Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение
Новосибирский государственный технический университет
Кафедра вычислительной техники
Лабораторная работа № 7
по дисциплине «ООП»
Тема: Многопоточность и параллелизм
Группа: АВТ-910 Студенты: Соловьев Н. О. |
Преподаватель: Малявко А. А. |
Новосибирск 2012
1. Изучить и освоить способы построения многопотоковых приложений.
2. Освоить базовые средства и возможности синхронизации потоков.
3. Изучить расширенные по сравнению с базовыми возможности пакета java.util.concurrent и его подпакетов:
- фреймворк Executor, пулы потоков;
- средства блокировки;
- атомарные операции;
- расширенные средства синхронизации потоков;
Ориентируясь на собственный вариант задания на курсовую работу и используя результаты предыдущих лабораторных работ:
1. Определить набор задач, которые должны исполняться параллельно при работе приложения, например:
- отрисовка элементов графического интерфейса пользователя;
- ввод/вывод данных о настройке приложения;
- сериализация/десериализация;
- основные расчеты;
- ….
2. Выбрать наиболее подходящий для каждой задачи способ ее создания и запуска.
3. Спланировать расписание запуска задач, разработать и реализовать создание соответствующих задач и запуск их на выполнение.
4. Определить перечень объектов приложения, через которые осуществляется передача данных между каждой парой взаимодействующих потоков.
5. Разработать и реализовать безопасные алгоритмы взаимодействия всех задач в приложении.
Отчет готовится в электронном виде и должен содержать:
- цель работы;
- описание разработанной иерархии классов и интерфейсов заданной предметной области;
- листинги классов и интерфейсов;
- документацию, подготовленную с использованием утилиты javadoc;
- выводы и заключение.
1) Написание исходного кода переопределенного интерфейса Runnable – myRunnable и загрузки файла, использовавшего данный интерфейс
class myRunnable implements Runnable
{
Thread thisThread;
public void run()
{
JFileChooser open = new JFileChooser();
int integ = open.showOpenDialog(GUIMainForm.this);
if (integ == JFileChooser.APPROVE_OPTION) {
try {
File file = open.getSelectedFile();
ArrayList<Product> arrlist;
FileInputStream infile = new FileInputStream(file);
ObjectInputStream inobj = new ObjectInputStream(infile);
arrlist = (ArrayList<Product>)inobj.readObject();
for (Product pr : arrlist)
listProduct.add(pr);
reloadList();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Button buttonOpen = new Button("Open...");
buttonOpen.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
Thread mR = new Thread(new myRunnable());
mR.start();
mR = null;
}
});
2) Написание исходного кода переопределенного класса Thread – myThread и сохранение файла, использовавшего данный класс:
class myThread extends Thread
{
public void run()
{
JFileChooser save = new JFileChooser();
int integ = save.showSaveDialog(GUIMainForm.this);
if (integ == JFileChooser.APPROVE_OPTION) {
try {
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.