На этом коротком слайде мы узнаем, как создать поток через функциональное программирование.
Дата отправки отчёта:
8 декабря 2018 г.
Задание выполнено: за
4 час. 52 мин.
Чему научился:
Узнал, как создать поток через функциональное программирование. Не понял в чем его преимущество.
Что было сложным:
Описание задания 1. В классе Main при создании экземпляра класса Thread заменить параметр worker на "волшебные скобочки" ()->{...}, прописав функционал метода run(). 2. Удалить строку создания экземпляра класса Worker. 3. Запустить программу и проанализировать результаты. 4. Реализовать второй вариант программы путем создания экземпляра worker класса Runnable. 5. Запустить программу и сравнить её результаты с предыдущими. 6. Придумать свой вариант примера для метода run(). 7. Сделать скриншот и выслать отчет на проверку.
Научился: Очень интересная тема. Только сегодня где-то видел функциональный код на С#, там вроде бы оператор => {} используется. Трудности: Хотел вывести номер потока в консоль, пока не вышло. Буду думать дальше )
Научился: В языке Си нет поддержки функционального программирования, поэтому я решил выполнить этот урок на языке Java. Сначала скачал jdk 11, скомпилировал программу, попробовал запустить, система сказала, что версия моего .class файла ниже, чем поддерживая версия рантайма в операционной системе. Посмотрел текущую версию рантайма, она оказалась равной 1.8, то есть 8, если я правильно понял. Я решил не менять свой рантайм, скачал другую версию jdk 1.8, скомпилировал - запустил - работает. Ура, я справился с Java. Хотел было уже отправить отчёт, но тут подумал, ну если Си не способен создать лямбду, может тогда старший брат С++ поможет? Набрал код на этом языке, запустил, тоже работает. Тут я использовал средства стандартной библиотеки, поэтому код похож на код Java, а не выкрутасы с системными вызовами как было в Си :)
Чтобы потоки выполнялись более-менее параллельно, я добавил задержку в 10 мс между итерациями, как и было предложено сделать в видеоуроке.