Проект

Общее

Профиль

JavaMultithreading » История » Версия 12

Александр Александров, 06.09.2018 02:09

1 2 Александр Александров
h1. Java Multithreading
2 1 Александр Александров
3
<pre>
4
Квест «Java Multithreading» познакомит студентов секретного центра JavaRush с многопоточностью. В течение 10 уровней вы будете изучать устройство объекта Object, String, 
5
внутренние классы. Узнаете, как создавать и останавливать потоки, что такое DeadLock, Wait, notify, notifyAll, получите опыт работы с Jsop и Swing, а также узнаете об 
6
автоупаковке и особенностях её реализации. На этом квесте вы создадите ваши первые мини-проекты — большие задачи. В обучающих целях их решение будет разбито 
7
на этапы. Вам нужно будет написать несколько игр — тетрис, змейку, космическую стрелялку, арканоид. Также вы поработаете над серьезными многоступенчатыми задачами, 
8
наподобие чата, эмулятора банкомата и даже парсера сайтов!
9
</pre>
10
11
h2. *Оглавление*
12
13 4 Александр Александров
[[JavaMultithreading#Java-Multithreading-Уровень-1-Устройство-объекта-Object-equals-hashCode-clone-wait-notify-toString|Java Multithreading. Уровень 1 *Устройство объекта Object: equals, hashCode, clone, wait, notify, toString(),...*]]
14
[[JavaMultithreading#Java-Multithreading-Уровень-2-String-mutable-immutable-format-StringTokenizer-StringBuilder-StringBuffer|Java Multithreading. Уровень 2 *String: mutable, immutable, format, StringTokenizer, StringBuilder, StringBuffer*]]
15 1 Александр Александров
16
----
17
18
h2. Java Multithreading. Уровень 1 *Устройство объекта Object: equals, hashCode, clone, wait, notify, toString(),...*
19
20
21
# "*%{color: blue}Habrahabr:%* Разбираемся с hashCode() и equals()":https://habr.com/post/168195/
22
# "Как сгенерировать hashCode в Java":http://www.seostella.com/ru/article/2012/10/04/kak-sgenerirovat-hashcode-v-java.html
23
# "Приложение А Передача и возврат объектов.":http://www.ccfit.nsu.ru/~deviv/courses/java/tij2nd/AppendixA.html
24 3 Александр Александров
25
h2. Java Multithreading. Уровень 2 *String: mutable, immutable, format, StringTokenizer, StringBuilder, StringBuffer*
26
27
# "*%{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
28
# "*%{color: brown}JavaRush:%* Класс String":https://javarush.ru/groups/posts/1411-klass-string
29
# "*%{color: brown}JavaRush:%* Форматируем вывод чисел в Java":https://javarush.ru/groups/posts/1412-formatiruem-vihvod-chisel-v-java
30
# "*%{color: brown}JavaRush:%* Управление строками, функции для работы со строками в Java":https://javarush.ru/groups/posts/1413-upravlenie-strokami-funkcii-dlja-rabotih-so-strokami-v-java
31
# "*%{color: brown}JavaRush:%* Управление строками, функции для работы со строками в Java. Часть 2":https://javarush.ru/groups/posts/1414-upravlenie-strokami-funkcii-dlja-rabotih-so-strokami-v-java-chastjh-2
32
# "*%{color: brown}JavaRush:%* Регулярные выражения в Java. Часть 1.":https://javarush.ru/groups/posts/1415-reguljarnihe-vihrazhenija-v-java-chastjh-1
33
# "*%{color: brown}JavaRush:%* Регулярные выражения в Java. Часть 2":https://javarush.ru/groups/posts/1416-reguljarnihe-vihrazhenija-v-java-chastjh-2
34
# "*%{color: brown}JavaRush:%* Основы регулярных выражений в Java. Часть 3":https://javarush.ru/groups/posts/1417-osnovih-reguljarnihkh-vihrazheniy-v-java-chastjh-3
35
# "*%{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
36
# "Книга: Регулярные выражения. Сборник рецептов.":https://cloud.resprojects.ru/s/5gKY47fFZexD6Wd
37
# Шпаргалка
38
39
{{dmsf_image(22)}}
40 5 Александр Александров
41
h2. Java Multithreading. Уровень 3 *Внутренние классы, примеры: Map.Entry*
42
43
# "Ключевое слово 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
44
# "ВНУТРЕННИЕ КЛАССЫ":http://wikijava.it-cache.net/index.php@title=Glava_10_Thinking_in_Java_4th_edition.html
45
# "Это ваш окончательный ответ?":https://www.ibm.com/developerworks/ru/library/j-jtp1029/
46
# "Внутренние классы в Java (inner classes java)":http://www.quizful.net/post/inner-classes-java
47
# "Вложенные и внутренние классы в Java. Часть 1":http://easy-code.ru/lesson/java-nested-classes
48
# "Вложенные и внутренние классы в Java. Часть 2":http://easy-code.ru/lesson/local-anonymous-nested-classes-java
49
50
h2. Java Multithreading. Уровень 4 *Внутренние классы, особенности реализации*
51
52
# "*%{color: blue}Habrahabr:%* Охота на мифический MVC. Обзор, возвращение к первоисточникам и про то, как анализировать и выводить шаблоны самому":https://habr.com/post/321050/
53
# "*%{color: blue}Habrahabr:%* Охота на мифический MVC. Построение пользовательского интерфейса":https://habr.com/post/322700/
54
# "*%{color: blue}Habrahabr:%* Создание архитектуры программы или как проектировать табуретку":https://habr.com/post/276593/
55
# "*%{color: brown}JavaRush:%* Класс MessageFormat":https://javarush.ru/groups/posts/590-klass-messageformat
56
# "Форматирование чисел, дат и текста.":http://forum.vingrad.ru/topic-66026.html
57 6 Александр Александров
58
h2. Java Multithreading. Уровень 5 *Создание и остановка нитей: start, interrupt, sleep, yield.*
59
60
# "Полное руководство по Java 8 Stream API в картинках и примерах":https://annimon.com/article/2778
61
# "Многопоточное программирование в Java 8. Часть первая. Параллельное выполнение кода с помощью потоков":https://tproger.ru/translations/java8-concurrency-tutorial-1/
62
# "Собеседование по Java — многопоточность (вопросы и ответы)":http://javastudy.ru/interview/concurrent/
63
# "*%{color: blue}Habrahabr:%* Обзор java.util.concurrent.*":https://habr.com/company/luxoft/blog/157273/
64
# "*%{color: blue}Habrahabr:%* Многопоточность в Java":https://habr.com/post/164487/
65
# "Будущее или интерфейс Future вместе с Callable":https://megahub.me/hub/java?w=77
66
# "Перечисления в Java (java enum)":http://www.quizful.net/post/java_enums
67
# "Часть 2. Выполнение задач в многопоточном режиме":https://www.ibm.com/developerworks/ru/library/l-java_universe_multithreading_tasks/index.html
68
# "Программирование сокетов на Java":http://www.quizful.net/post/java-socket-programming
69
70
Диаграмма с уточнение того что выход из состояние waiting обязательно переходит только в blocked
71
72
{{dmsf_image(23)}}
73
74
Распространённая диаграмма состояний потоков в Java
75
76
{{dmsf_image(24)}}
77
78
Граф перехода состояний потоков Java
79
80
{{dmsf_image(25)}}
81 7 Александр Александров
82
h2. Java Multithreading. Уровень 6 *Совместный доступ к монопольным данным: synchronized, volatile*
83
84
# "*%{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
85
# "*%{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
86
# "*%{color: brown}JavaRush:%*: Паттерн Iterator":https://javarush.ru/groups/posts/1884-pattern-iterator
87
# "Атомарные классы пакета util.concurrent":http://java-online.ru/concurrent-atomic.xhtml
88
# "*%{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
89
# "*%{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)
90
# "*%{color: gray}Wikipedia%*: Мьютекс":https://ru.wikipedia.org/wiki/%D0%9C%D1%8C%D1%8E%D1%82%D0%B5%D0%BA%D1%81
91
# "*%{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
92
# "Класс Arrays. Работа с массивами":http://turbopro.ru/index.php/yazyk-programmirovaniya-java/7693-11-klass-arrays-rabota-s-massivami
93
# "Элементарная реализация BlockingQueue на Java":http://jdevnotes.blogspot.com/2014/03/blockingqueue-java.html
94
# "*%{color: blue}Habrahabr%*: Как работает ConcurrentHashMap":https://habr.com/post/132884/
95
# "Как использовать ConcurrentHashMap в Java":http://poltora.info/blog/kak-ispolzovat-concurrenthashmap-v-java/
96
# "*%{color: red}JDK%*: Interface Lock":https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html
97
# "*%{color: red}JDK%*: Intrinsic Locks and Synchronization":https://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html
98
# "Java Volatile Keyword":http://tutorials.jenkov.com/java-concurrency/volatile.html
99
# "Сортировка и упорядочивание. Интерфейсы Comparable и Comparator":http://echuprina.blogspot.com/2012/02/comparable-comparator.html
100
# "Difference between Comparator and Comparable in java":https://java2blog.com/difference-between-comparator-and-comparable-in-java/
101
# "Полное руководство по Java 8 Stream API в картинках и примерах":https://annimon.com/article/2778
102
# "Собеседование по Java — многопоточность (вопросы и ответы)":http://javastudy.ru/interview/concurrent/
103
# "*%{color: blue}Habrahabr%*: Обзор java.util.concurrent.*":https://habr.com/company/luxoft/blog/157273/
104
# "Java Lock API. Теория и пример использования":https://javadevblog.com/java-lock-teoriya-i-primer-ispol-zovaniya-concurrency-lock.html
105
# Урок Java 346: Volatile и happens before
106
107
{{youtube(PP1Ac_PDlCM)}}
108 8 Александр Александров
109
h2. Java Multithreading. Уровень 7 *ThreadGroup, ThreadLocal, Executor, ExecutorService, Callable. Опыт работы с Jsoup*
110
111
# "*%{color: violet}Stack Overflow%*: Mutithreading with System.out.format and System.out.println":https://stackoverflow.com/questions/40234133/mutithreading-with-system-out-format-and-system-out-println
112
# "*%{color: brown}JavaRush%*: Взаимная блокировка(deadlock) в Java и методы борьбы с ней":https://javarush.ru/groups/posts/1422-vzaimnaja-blokirovkadeadlock-v-java-i-metodih-borjhbih-s-ney
113
# "Пять вещей, которые вы не знали о ... пакете java.util.concurrent. Часть 2":https://www.ibm.com/developerworks/ru/library/j-5things5/index.html
114
# "*%{color: blue}Habrahabr%*: Справочник по синхронизаторам java.util.concurrent.*":https://habr.com/post/277669/
115
# "Зачем wait() и notify() обрамлять в synchronized()?":https://javatalks.ru/topics/21956
116
# "Ответы на вопросы по собеседованию Multithreading":https://jsehelper.blogspot.com/2016/01/multithreading-1.html
117
# "Зачем synchronized вокруг wait/notify?":https://dev.cheremin.info/2010/03/synchronized-waitnotify.html
118
# "*%{color: violet}Stack Overflow%*: BlockingQueue когда, зачем и ради чего?":https://ru.stackoverflow.com/questions/508067/blockingqueue-%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%B7%D0%B0%D1%87%D0%B5%D0%BC-%D0%B8-%D1%80%D0%B0%D0%B4%D0%B8-%D1%87%D0%B5%D0%B3%D0%BE#508119
119
# "Взаимная блокировка(deadlock) в Java и методы борьбы с ней":http://www.developersonthe.net/ru/posts/post_id/34-Vzaimnaja-blokirovkadeadlock-v-Java-i-metody-borby-s-nej/
120
# "Что такое Deadlock, в каких случаях он бывает, как его можно избежать?":http://www.quizful.net/interview/java/Deadlock
121
# "Синхронизация потоков":http://www.skipy.ru/technics/synchronization.html
122
# "*%{color: brown}JavaRush%*: Ответы на вопросы к собеседованию Level27":https://javarush.ru/groups/posts/1611-otvetih-na-voprosih-k-sobesedovaniju-level27
123
# "*%{color: blue}Habrahabr%*: Класс дедлоков про дедлок классов":https://habr.com/company/odnoklassniki/blog/255067/
124
# "Пять вещей, которые вы не знали о ... пакете java.util.concurrent. Часть 1":https://www.ibm.com/developerworks/ru/library/j-5things4/
125
# "Более гибкая, масштабируемая блокировка в JDK 5.0":https://www.ibm.com/developerworks/ru/library/j-jtp10264/
126 9 Александр Александров
# "Относительный путь относительно папки":http://www.cyberforum.ru/java-j2se/thread1224104.html
127 11 Александр Александров
# "NIO Java, обучающая статья":http://www.quizful.net/post/java-nio-tutorial
128 10 Александр Александров
# "Файлы и директории, класс File":http://java-online.ru/java-file.xhtml
129 12 Александр Александров
# "*%{color: violet}Stack Overflow%*: java zipentry getsize returns -1":https://stackoverflow.com/questions/36045421/java-zipentry-getsize-returns-1
130 8 Александр Александров
131
Синхронизаторы - Concurrency №4 - Advanced Java
132
133
{{youtube(XkAjmCIY2WI)}}
134
135
Урок по Java 83: Многопоточность 18: CountDownLatch
136
137
{{youtube(6dx3Ma4JeZE)}}
138
139
Алексей Шипилёв — Прагматика Java Memory Model
140
141
{{youtube(iB2N8aqwtxc)}}
Go to top