На этом слайде мы создадим коллизию и узнаем, как от неё избавиться.
Дата отправки отчёта:
6 декабря 2018 г.
Задание выполнено: за
16 мин.
Чему научился:
Всё очевидно)) Наша программа стала однопоточной, каждый выполнил свои действи после того как завершил свои действия предидущий))) Этим мы убили многопоточность)
Что было сложным:
Найти время
Оценка видео-уроку:
Оцени работу
Сохранить страницу:
Отчёт оценивали: 17947. Dmitry Sinitsin+110494. Алексей В.+110558. Иван Воронин+1791. Валерий Жданов+13922. Александр+117606. Виктор+19913. vip+15649. Максим Лапшинов+119384. Владимир+11. Евгений Волосатов+13747. Сергей+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Синхронизировать потоки Трудности: Описание урока
1. Обновить класс Worker: добавить счётчик count и заменить вечный цикл конечным, где вывести на экран номер итерации и значение счётчика..
2. Обновить основной класс Main: создать экземпляр класса Worker и с его помощью 5 безымянных экземпляров класса Thread.
3. Запустить программу и проанализировать результаты.
4. Дополнить класс Worker, добавив паузу sleep(10).
5. Запустить программу и сравнить новые результаты с предыдущими.
6. Устранить возникшую коллизию добавлением в класс Worker метода synchronized void next().
7. Запустить программу и убедиться в отсутствии коллизии.
8. Поэкспериментировать с различными вариантами функции next().
9. Объяснить в каких случаях и почему происходит замедление работы программы.
10. Сделать скриншот и выслать отчет на проверку.
Научился: Поэкспериментировали с потоками и коллизиями. Synchronized метод подразумевает, что он может выполняться только одним процессом в данный момент.
Св-во переменной volatile означает, что доступ или изменение данной переменной происходит тут же, без ожидания завершения операций над переменной другими потоками.
Время работы программы увеличилось из-за того, что в Synchronized метод next кроме основных операций была добавлена пауза Thread.sleep(10).