Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

 13417

-- Chip

Клиент-серверный сокет / VIP. Синхрофазатрон

  • На этом слайде мы создадим коллизию и узнаем, как от неё избавиться.
  • Дата отправки отчёта: 25 ноября 2018 г.
  • Задание выполнено: за 7 час. 47 мин.
  • Чему научился: Интересный материал урока, увидел коллизию и способ борьбы с ней. Мне потребовалось изучить дополнительный материал. Возникла масса проблем начиная с того, что нужно было корректно перехватывать завершение работы дочерних потоков и заканчивая созданием синхронизирующего механизма для защиты доступа к переменной count. На видео для языка Java для этого использовалось ключевое слово synchronized, я реализовал схожее поведение через создание фьютекса, ух, было весело:) Попутно узнал про функцию nanosecond, которая позволяет устанавливать задержку в наносекундах.
  • Оценка видео-уроку:
Отчёт от 13417 за Клиент-серверный сокет / VIP. Синхрофазатрон


Отчёт от 13417 за Клиент-серверный сокет / VIP. Синхрофазатрон




Оцени работу

 
Сохранить страницу:

  • Отчёт оценивали:
    17947Dmitry Sinitsin+1   19525Александр Балбашов+1   9913vip+1   3922Александр+1   3747Сергей+1   19384Владимир+1   791Валерий Жданов+1   17606Виктор+1   1Евгений Волосатов+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).