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

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

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

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

  • На этом слайде мы создадим коллизию и узнаем, как от неё избавиться.
  • Дата отправки отчёта: 16 октября 2020 г.
  • Задание выполнено: за 37 мин.
  • Чему научился: Эксперименты с оператором synchronized. Создали 5 потоков и все 5 потоков обращались к общей переменной, без оператора synchronized и с оператором synchronized, получается несколько потоков могут в разные моменты(присваивание и инкрементирование) менять общую переменную, что дает забавные результаты. Оператор volatile указывает виртуальной машине хранить значение этой переменной только в регистрах процессора.
  • Оценка видео-уроку:
Отчёт от 24765 за Клиент-серверный сокет / VIP. Синхрофазатрон




Оцени работу

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

  • Отчёт оценивали:
    6203Николай Миролюбов+1   791Валерий Жданов+1   11051Dima+1   25450MaxB+1   28882Vlad_Plestsov0   24765Anatoli+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).