The course program "Multicore programming in Java" Good day.
My name is Golovach Ivan, I lead a small educational company. We are engaged in
online programming courses .
I also teach
Scala for Java Developers on the udemy.com online education platform (equivalent to Coursera / EdX).
I would like to hear from the community about
course programs "Multicore programming in Java" literature to the course Briefly about the course:
starts on April 28 (due to the May holidays, the start is postponed to May 15), is conducted in webinar mode twice a week from 7 to 10 pm, consists of 16 lectures of 2.5 hours (= 40 lecture hours), each lecture is given extended task, designed for Java Junior / Middle.
Course program Module # 1: Between “Iron” and “Mathematics”, Primitives "iron"modern processor architecture, caches memory barriers, read / write reordering, cache coherence protocols “Math” / Java Memory ModelNew JMM - description "on the fingers" what guarantees give Thread.start () / join (), volatile, final, CAS, lazySet, weakCompareAndSet, classes from juc New JMM formal specification: happens-before edge, commitment protocol primitives / constructionsdouble checked locking (broken), safe publishing synchronized + Object.wait () / notify () / notifyAll () - how to use, what guarantees, as implemented in HotSpot sell your own: Dekker's algorithm, Peterson's algorithm, Lamport Bakery algotithm Module # 2: java.util.concurrent (Java 5) multithreaded collectionsBlockingQueue's ConcurrentMap-s: ConcurrentHashMap, ConcurrentSkipListMap copy-on-write structures: CopyOnWriteArrayList, CopyOnWriteArraySet “Synchronizers”Lock, Condition, ReentrantLock, ReentrantReadWriteLock, Semaphore CountDownLatch, CyclicBarrier, Exchanger, Phaser thread pool + FutureExecutors, ExecutorService, ThreadPoolExecutor, ScheduledExecutorService, ScheduledThreadPoolExecutor Callable, Future, what is missing jucFuture juc core: AbstractQueuedSynchronizer + LockSupportinternal jucAQS device we build our primitives on jucAQS + LockSupport Module # 3: Fork / Join Framework (java 7) + Parallel Streams (Java 8) Fork / Join Frameworksolve problems in the style of recursive parallelism idioms and typical tasks Fork / Join Framework - that "under the hood" Parallel streamsJava 8 - working with data through java.util.Stream java.util.Stream.parallel () - that "under the hood" Module # 4: “Non-Classical Architectures” Non-blocking algorithmjucatomic package: AtomicXXX, AtomicXXXArray, AtomicXXXFieldUpdater, AtomicStampedReference, AtomicMarkableReference classification: blocking, non-blocking, lock-free, wait-free, obstruction free non-blocking implementations of the main data structures: stack, queue, deque, hashtable, treemap message-based architectures (Akka)Akka library basic patterns, typical architectures the pros and cons of message-based architectures Software Transactional Memory (Clojure)library clojure.lang. * Pros and cons of transactional memory architectures Persistent Data Structurespros and cons of persistent data structures persistent implementations of underlying data structures: stack, queue, deque, hashtable, treemap libraries: clojure.lang. *, pcollections ')
Literature Books Articles Martin Thompson, etc, “Disruptor: High performance alternatives to bounded-up queues for exchanging data between concurrent threads” Ulrich Drepper, “What Every Programmer Should Know About Memory” Doug Lea, “The JSR-133 Cookbook for Compiler Writers” Brian Goetz, “Double-checked locking: Clever, but broken” The “Double-Checked Locking is Broken” Declaration Jeremy Manson, Brian Goetz, “JSR 133 (Java Memory Model) FAQ” Doug Lea, “The JSR-133 Cookbook for Compiler Writers” Doug Lea, “The java.util.concurrent Synchronizer Framework” Doug Lea, “A Java Fork / Join Framework” Blogs Contacts I do Java online training (here
are the programming courses ) and publish some of the training materials as part of the reworking
of the Java Core course . You can see videos of lectures in the audience on the
youtube channel , perhaps the video of the channel is better organized in
this article .
skype: GolovachCourses
email: GolovachCourses@gmail.com
Source: https://habr.com/ru/post/217051/All Articles