JavaMultithreading » История » Редакция 7
Редакция 6 (Александр Александров, 21.08.2018 23:24) → Редакция 7/16 (Александр Александров, 26.08.2018 01:57)
h1. Java Multithreading
<pre>
Квест «Java Multithreading» познакомит студентов секретного центра JavaRush с многопоточностью. В течение 10 уровней вы будете изучать устройство объекта Object, String,
внутренние классы. Узнаете, как создавать и останавливать потоки, что такое DeadLock, Wait, notify, notifyAll, получите опыт работы с Jsop и Swing, а также узнаете об
автоупаковке и особенностях её реализации. На этом квесте вы создадите ваши первые мини-проекты — большие задачи. В обучающих целях их решение будет разбито
на этапы. Вам нужно будет написать несколько игр — тетрис, змейку, космическую стрелялку, арканоид. Также вы поработаете над серьезными многоступенчатыми задачами,
наподобие чата, эмулятора банкомата и даже парсера сайтов!
</pre>
h2. *Оглавление*
[[JavaMultithreading#Java-Multithreading-Уровень-1-Устройство-объекта-Object-equals-hashCode-clone-wait-notify-toString|Java Multithreading. Уровень 1 *Устройство объекта Object: equals, hashCode, clone, wait, notify, toString(),...*]]
[[JavaMultithreading#Java-Multithreading-Уровень-2-String-mutable-immutable-format-StringTokenizer-StringBuilder-StringBuffer|Java Multithreading. Уровень 2 *String: mutable, immutable, format, StringTokenizer, StringBuilder, StringBuffer*]]
----
h2. Java Multithreading. Уровень 1 *Устройство объекта Object: equals, hashCode, clone, wait, notify, toString(),...*
# "*%{color: blue}Habrahabr:%* Разбираемся с hashCode() и equals()":https://habr.com/post/168195/
# "Как сгенерировать hashCode в Java":http://www.seostella.com/ru/article/2012/10/04/kak-sgenerirovat-hashcode-v-java.html
# "Приложение А Передача и возврат объектов.":http://www.ccfit.nsu.ru/~deviv/courses/java/tij2nd/AppendixA.html
h2. Java Multithreading. Уровень 2 *String: mutable, immutable, format, StringTokenizer, StringBuilder, StringBuffer*
# "*%{color: brown}JavaRush:%* Кодировка текста ASCII (Windows 1251, CP866, KOI8-R) и Юникод (UTF 8, 16, 32) — как исправить проблему с кракозябрами":https://javarush.ru/groups/posts/1418-kodirovka-teksta-ascii-windows-1251-cp866-koi8-r-i-junikod-utf-8-16-32--kak-ispravitjh-problemu
# "*%{color: brown}JavaRush:%* Класс String":https://javarush.ru/groups/posts/1411-klass-string
# "*%{color: brown}JavaRush:%* Форматируем вывод чисел в Java":https://javarush.ru/groups/posts/1412-formatiruem-vihvod-chisel-v-java
# "*%{color: brown}JavaRush:%* Управление строками, функции для работы со строками в Java":https://javarush.ru/groups/posts/1413-upravlenie-strokami-funkcii-dlja-rabotih-so-strokami-v-java
# "*%{color: brown}JavaRush:%* Управление строками, функции для работы со строками в Java. Часть 2":https://javarush.ru/groups/posts/1414-upravlenie-strokami-funkcii-dlja-rabotih-so-strokami-v-java-chastjh-2
# "*%{color: brown}JavaRush:%* Регулярные выражения в Java. Часть 1.":https://javarush.ru/groups/posts/1415-reguljarnihe-vihrazhenija-v-java-chastjh-1
# "*%{color: brown}JavaRush:%* Регулярные выражения в Java. Часть 2":https://javarush.ru/groups/posts/1416-reguljarnihe-vihrazhenija-v-java-chastjh-2
# "*%{color: brown}JavaRush:%* Основы регулярных выражений в Java. Часть 3":https://javarush.ru/groups/posts/1417-osnovih-reguljarnihkh-vihrazheniy-v-java-chastjh-3
# "*%{color: gray}Wikipedia:%* Регулярные выражения":https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F
# "Книга: Регулярные выражения. Сборник рецептов.":https://cloud.resprojects.ru/s/5gKY47fFZexD6Wd
# Шпаргалка
{{dmsf_image(22)}}
h2. Java Multithreading. Уровень 3 *Внутренние классы, примеры: Map.Entry*
# "Ключевое слово final":http://wikijava.it-cache.net/index.php@title=Glava_7_Thinking_in_Java_4th_edition.html#.D0.9A.D0.BB.D1.8E.D1.87.D0.B5.D0.B2.D0.BE.D0.B5_.D1.81.D0.BB.D0.BE.D0.B2.D0.BE_final
# "ВНУТРЕННИЕ КЛАССЫ":http://wikijava.it-cache.net/index.php@title=Glava_10_Thinking_in_Java_4th_edition.html
# "Это ваш окончательный ответ?":https://www.ibm.com/developerworks/ru/library/j-jtp1029/
# "Внутренние классы в Java (inner classes java)":http://www.quizful.net/post/inner-classes-java
# "Вложенные и внутренние классы в Java. Часть 1":http://easy-code.ru/lesson/java-nested-classes
# "Вложенные и внутренние классы в Java. Часть 2":http://easy-code.ru/lesson/local-anonymous-nested-classes-java
h2. Java Multithreading. Уровень 4 *Внутренние классы, особенности реализации*
# "*%{color: blue}Habrahabr:%* Охота на мифический MVC. Обзор, возвращение к первоисточникам и про то, как анализировать и выводить шаблоны самому":https://habr.com/post/321050/
# "*%{color: blue}Habrahabr:%* Охота на мифический MVC. Построение пользовательского интерфейса":https://habr.com/post/322700/
# "*%{color: blue}Habrahabr:%* Создание архитектуры программы или как проектировать табуретку":https://habr.com/post/276593/
# "*%{color: brown}JavaRush:%* Класс MessageFormat":https://javarush.ru/groups/posts/590-klass-messageformat
# "Форматирование чисел, дат и текста.":http://forum.vingrad.ru/topic-66026.html
h2. Java Multithreading. Уровень 5 *Создание и остановка нитей: start, interrupt, sleep, yield.*
# "Полное руководство по Java 8 Stream API в картинках и примерах":https://annimon.com/article/2778
# "Многопоточное программирование в Java 8. Часть первая. Параллельное выполнение кода с помощью потоков":https://tproger.ru/translations/java8-concurrency-tutorial-1/
# "Собеседование по Java — многопоточность (вопросы и ответы)":http://javastudy.ru/interview/concurrent/
# "*%{color: blue}Habrahabr:%* Обзор java.util.concurrent.*":https://habr.com/company/luxoft/blog/157273/
# "*%{color: blue}Habrahabr:%* Многопоточность в Java":https://habr.com/post/164487/
# "Будущее или интерфейс Future вместе с Callable":https://megahub.me/hub/java?w=77
# "Перечисления в Java (java enum)":http://www.quizful.net/post/java_enums
# "Часть 2. Выполнение задач в многопоточном режиме":https://www.ibm.com/developerworks/ru/library/l-java_universe_multithreading_tasks/index.html
# "Программирование сокетов на Java":http://www.quizful.net/post/java-socket-programming
Диаграмма с уточнение того что выход из состояние waiting обязательно переходит только в blocked
{{dmsf_image(23)}}
Распространённая диаграмма состояний потоков в Java
{{dmsf_image(24)}}
Граф перехода состояний потоков Java
{{dmsf_image(25)}}
h2. Java Multithreading. Уровень 6 *Совместный доступ к монопольным данным: synchronized, volatile*
# "*%{color: brown}JavaRush:%*: Уровень 26. Ответы на вопросы к собеседованию по теме уровня. Часть 1. Вопросы 1-5, 10.":https://javarush.ru/groups/posts/1580-urovenjh-26-otvetih-na-voprosih-k-sobesedovaniju-po-teme-urovnja-chastjh-1-voprosih-1-5-10
# "*%{color: brown}JavaRush:%*: Уровень 26. Ответы на вопросы к собеседованию по теме уровня. Часть 2. Вопросы 6-9, 11-12":https://javarush.ru/groups/posts/1582-urovenjh-26-otvetih-na-voprosih-k-sobesedovaniju-po-teme-urovnja-chastjh-2-voprosih-6-9-11-12
# "*%{color: brown}JavaRush:%*: Паттерн Iterator":https://javarush.ru/groups/posts/1884-pattern-iterator
# "Атомарные классы пакета util.concurrent":http://java-online.ru/concurrent-atomic.xhtml
# "*%{color: violet}Stack Overflow%*: Что такое монитор, мьютекс и семафор? Это одно и тоже или разные вещи?":https://ru.stackoverflow.com/questions/661805/%D0%A7%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80-%D0%BC%D1%8C%D1%8E%D1%82%D0%B5%D0%BA%D1%81-%D0%B8-%D1%81%D0%B5%D0%BC%D0%B0%D1%84%D0%BE%D1%80-%D0%AD%D1%82%D0%BE-%D0%BE%D0%B4%D0%BD%D0%BE-%D0%B8-%D1%82%D0%BE%D0%B6%D0%B5-%D0%B8%D0%BB%D0%B8-%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D0%B5-%D0%B2%D0%B5%D1%89%D0%B8
# "*%{color: gray}Wikipedia%*: Монитор (синхронизация)":https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80_(%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F)
# "*%{color: gray}Wikipedia%*: Мьютекс":https://ru.wikipedia.org/wiki/%D0%9C%D1%8C%D1%8E%D1%82%D0%B5%D0%BA%D1%81
# "*%{color: violet}Stack Overflow%*: Сортировка в Java":https://ru.stackoverflow.com/questions/33385/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B2-java
# "Класс Arrays. Работа с массивами":http://turbopro.ru/index.php/yazyk-programmirovaniya-java/7693-11-klass-arrays-rabota-s-massivami
# "Элементарная реализация BlockingQueue на Java":http://jdevnotes.blogspot.com/2014/03/blockingqueue-java.html
# "*%{color: blue}Habrahabr%*: Как работает ConcurrentHashMap":https://habr.com/post/132884/
# "Как использовать ConcurrentHashMap в Java":http://poltora.info/blog/kak-ispolzovat-concurrenthashmap-v-java/
# "*%{color: red}JDK%*: Interface Lock":https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html
# "*%{color: red}JDK%*: Intrinsic Locks and Synchronization":https://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html
# "Java Volatile Keyword":http://tutorials.jenkov.com/java-concurrency/volatile.html
# "Сортировка и упорядочивание. Интерфейсы Comparable и Comparator":http://echuprina.blogspot.com/2012/02/comparable-comparator.html
# "Difference between Comparator and Comparable in java":https://java2blog.com/difference-between-comparator-and-comparable-in-java/
# "Полное руководство по Java 8 Stream API в картинках и примерах":https://annimon.com/article/2778
# "Собеседование по Java — многопоточность (вопросы и ответы)":http://javastudy.ru/interview/concurrent/
# "*%{color: blue}Habrahabr%*: Обзор java.util.concurrent.*":https://habr.com/company/luxoft/blog/157273/
# "Java Lock API. Теория и пример использования":https://javadevblog.com/java-lock-teoriya-i-primer-ispol-zovaniya-concurrency-lock.html
# Урок Java 346: Volatile и happens before
{{youtube(PP1Ac_PDlCM)}}
Go to top