На этом слайде мы встроим многопоточность в клиент-серверную программу Socketor и продемонстрируем достигнутый эффект.
Дата отправки отчёта:
8 декабря 2018 г.
Задание выполнено: за
18 час. 16 мин.
Чему научился:
Встраивать многопоточность в клиент-серверную программу Socketor.
Что было сложным:
Описание задания к уроку 1. Смоделировать загрузку сервера с помощью метода sleep(7000). 2. В консольном окне запустить сервер. 3. Запустить несколько клиентов, каждого в отдельном окне. 4. Проанализировать результаты работы программы. 5. Добавить конструктор Phone(Phone phone). 6. Создать новый класс ServerPhone. 7. Обновить метод runServer(...), в котором изменить список параметров и организовать цикл по созданию нескольких серверов. 8. Перенести вечный цикл метода runServer(...) в метод run() класса ServerPhone. 9. Перенести метод calculate(...) в класс ServerPhone. 10. Откорректировать входные параметры сервера. 11. В отдельных окнах запустить сервер и несколько клиентов. 12. Сравнить общее время работы полученной программы с таким же показателем исходной программы. 13. Сделать скриншот и выслать отчет на проверку.
Научился: при добавлении метода sleep необходимо позаботиться о трайкече с InterruptedException
Каждый клиент ждёт обработки с ожиданием 7 секунд предыдущего клиента, и лишь после завершения обработки того, получает доступ к Серверу для своего подключения.
Паравозиком идут клиенты, как вагончики, не перепутываются.
Порт для всех один, двое сразу не подключатся.
Второй phone на тот же порт зацепить не получится - порт уже занят!
Реализовали в Phone конструктором создание каждому клиенту своего серверного сокета - ЭТО ПЕРЕШЛИ К МНОГОПОТОЧНОМУ ВАРИАНТУ
ALT + INSERT - создание конструктора в контексте
При созданных разных потоках у каждого клиента, обработка математическихЪ примеровЪ пошла по принципу - все на батьку!
Научился: В этом уроке я научился создавать многопоточный сервер. Мне понравилось то, что мы здесь объединили две программы, две рассмотренные в этом курсе темы. Первая это однопоточное клиент-серверное приложение, а второе это потоки. Для проверки работы сервера, я написал скрипт на bash, который симулирует запуск указанного количества клиентов с интервалом в 100мс. В сервер тоже добавил задержку симуляции сложной обработки, 3 секунды на один запрос.
Курс мне понравился, Евгений Витольдович выбрал отличную тему для демонстрации многопоточности, спасибо за интересный материал ! :)