На этом слайде мы создадим простейшую программу с двумя потоками.
Дата отправки отчёта:
24 ноября 2018 г.
Задание выполнено: за
6 час. 10 мин.
Чему научился:
Научился создавать потоки с помощью функции системного вызова clone. В моем случае, создание потока похоже на способ в Java, когда новый поток запускает указанную функцию. Добавил третий поток, для вывода текста "Third". Чтобы вывод программы не улетал далеко за пределы экрана, добавил задержку в 1 секунду после вывода сообщения.
Приветствую, chip! Каждый раз, когда смотрю твои отчёты, понимаю, на сколько это серьёзный вызов, выполнять задание на другом языке программирования, не на том, на котором записан сам видео урок. Но, ты всегда ещё и творчески пытаешься подходить к выполнению задания. Ты большой молодец, желаю успехов в дальнейшем обучении!
Спасибо за добрые слова, Александр! В видеоуроках ставится чёткая цель, своего рода ориентир того, что должно в итоге получиться. Когда есть чёткая цель, я ищу возможности с использованием своих инструментов. Не всегда получается легко и быстро, иногда требуется читать много документации. Любой может попробовать такой способ, например писать программы на Java вместо C#.
Отчёт оценивали: 3922. Александр+118419. DenisMed+117947. Dmitry Sinitsin+120215. Андрей Бебнев+118131. Александр+12146. Иван+11. Евгений Волосатов+117606. Виктор+118681. alklokov+1791. Валерий Жданов+19913. vip+13747. Сергей+119384. Владимир+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: для создания потока
а) наследуем от Thread (extends Thread)
или
б) имплементируем Runnable (implements Runnable)
Метод run запускает отдельный поток
sleep(), wait() снижают нагрузку на процессор, создавая паузы выполнения инструкций в коде
Для создания нового отдельного потока создаётся новый экземпляр класса Thread с передачей ему аргументом экземпляра first из класса Workerа имплементированного от Runnable
Чтобы ограничить доступ к методам, и позволить только одному потоку менять данные там в какой-либо момент времени, мы используем ключевое слово synchronized.
Synchronized позволяет заблокировать доступ к методу или части кода, если его уже использует другой поток.
Научился: Для класса Worker я создал конструктор с 2 мя параметрами именем потока и временем ожидания
Трудности: 1. Создать новый проект с именем ThreadExample
2. Создать класс с имлементацией интерфейса Runnable и реализовать в нем метод Run();
3. Реализовать основной класс Main, в котором создать экземпляры классов
Worker и Thread.
4. Вызвать метод start() класса Thread.
5. Организовать отдельный поток в виде вечного цикла в основном классе.
6. Запустить программу и убедиться в работоспособности двух потоков.
7. Добавить третий поток и протестировать программу.