Проект

Общее

Профиль

JavaMultithreading » История » Редакция 14

Редакция 13 (Александр Александров, 09.09.2018 00:45) → Редакция 14/16 (Александр Александров, 09.09.2018 01:04)

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 8. Часть вторая. Синхронизация доступа к изменяемым объектам":https://tproger.ru/translations/java8-concurrency-tutorial-2/ 
 # "Собеседование по 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)}} 

 h2. Java Multithreading. Уровень 7 *ThreadGroup, ThreadLocal, Executor, ExecutorService, Callable. Опыт работы с Jsoup* 

 # "*%{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 
 # "*%{color: brown}JavaRush%*: Взаимная блокировка(deadlock) в Java и методы борьбы с ней":https://javarush.ru/groups/posts/1422-vzaimnaja-blokirovkadeadlock-v-java-i-metodih-borjhbih-s-ney 
 # "Пять вещей, которые вы не знали о ... пакете java.util.concurrent. Часть 1":https://www.ibm.com/developerworks/ru/library/j-5things4/ 
 # "Пять вещей, которые вы не знали о ... пакете java.util.concurrent. Часть 2":https://www.ibm.com/developerworks/ru/library/j-5things5/index.html 
 # "*%{color: blue}Habrahabr%*: Справочник по синхронизаторам java.util.concurrent.*":https://habr.com/post/277669/ 
 # "Зачем wait() и notify() обрамлять в synchronized()?":https://javatalks.ru/topics/21956 
 # "Ответы на вопросы по собеседованию Multithreading":https://jsehelper.blogspot.com/2016/01/multithreading-1.html 
 # "Зачем synchronized вокруг wait/notify?":https://dev.cheremin.info/2010/03/synchronized-waitnotify.html 
 # "*%{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 
 # "Взаимная блокировка(deadlock) в Java и методы борьбы с ней":http://www.developersonthe.net/ru/posts/post_id/34-Vzaimnaja-blokirovkadeadlock-v-Java-i-metody-borby-s-nej/ 
 # "Что такое Deadlock, в каких случаях он бывает, как его можно избежать?":http://www.quizful.net/interview/java/Deadlock 
 # "Синхронизация потоков":http://www.skipy.ru/technics/synchronization.html 
 # "*%{color: brown}JavaRush%*: Ответы на вопросы к собеседованию Level27":https://javarush.ru/groups/posts/1611-otvetih-na-voprosih-k-sobesedovaniju-level27 
 # "*%{color: blue}Habrahabr%*: Класс дедлоков про дедлок классов":https://habr.com/company/odnoklassniki/blog/255067/ 
 # "Более гибкая, масштабируемая блокировка в JDK 5.0":https://www.ibm.com/developerworks/ru/library/j-jtp10264/ 
 # "Относительный путь относительно папки":http://www.cyberforum.ru/java-j2se/thread1224104.html 
 # "NIO Java, обучающая статья":http://www.quizful.net/post/java-nio-tutorial 
 # "Файлы и директории, класс File":http://java-online.ru/java-file.xhtml 
 # "*%{color: violet}Stack Overflow%*: java zipentry getsize returns -1":https://stackoverflow.com/questions/36045421/java-zipentry-getsize-returns-1 

 Синхронизаторы - Concurrency №4 - Advanced Java 

 {{youtube(XkAjmCIY2WI)}} 

 Урок по Java 83: Многопоточность 18: CountDownLatch 

 {{youtube(6dx3Ma4JeZE)}} 

 Алексей Шипилёв — Прагматика Java Memory Model 

 {{youtube(iB2N8aqwtxc)}}
Go to top