java threads - part 1
TRANSCRIPT
![Page 1: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/1.jpg)
Накрайников Олег[email protected]
Java Threads. Part 1
Java. The well-known and not well-known
Threads, Locks, Synchronizers
![Page 2: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/2.jpg)
Пролог
![Page 3: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/3.jpg)
Java Concurrency Timeline
JDK 1.0- JMM - Synchronizers- Thread
JDK 1.2 - Collections
Doug Lea- Concurrency
package
JDK 1.6 - Deques
JDK 1.7 - ForkJoin Pool
JDK 1.8 - java.util. concurrent
JDK 1.5 -JMM-java.util.concurrent
1996 1997 1998 2004 2011 20142006
![Page 4: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/4.jpg)
Пакет java.util.concurrent.*
Executors
AtomicsLocks Synchronizers
QueuesConcurrent collections
![Page 5: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/5.jpg)
О чем поговорим сегодня
▪ Threads▪ Locks▪ Synchronizers
![Page 6: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/6.jpg)
Процессы и потоки
![Page 7: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/7.jpg)
Потоки в java
![Page 8: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/8.jpg)
Класс Thread
void start() Запустить выполнение потока
void interrupt() Прервать поток
boolean isInterrupted() Получить признак прерывания
boolean isAlive() Признак выполнения потока
void join(), void join(long millis) Дождаться окончания потока
static void sleep(long millis) Приостановить выполнение потока на
static void yield() Заставляет процессор переключиться на обработку других потоков системы
![Page 9: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/9.jpg)
Потоко-безопасность доступа к данным
Lock free алгоритмы
Lock алгоритмы
![Page 10: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/10.jpg)
Synchronized vs ReentrantLock
![Page 11: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/11.jpg)
Object wait notify vs ReentrantLock
![Page 12: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/12.jpg)
ReentrantReadWriteLock vs ReentrantLock
![Page 13: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/13.jpg)
Deadlock vs deadlive
![Page 14: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/14.jpg)
Deadlock vs deadlive
![Page 15: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/15.jpg)
Semaphore vs Mutex
![Page 16: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/16.jpg)
CountDownLatch vs CyclicBarrier
![Page 17: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/17.jpg)
Exchanger
![Page 18: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/18.jpg)
ThreadLocal
![Page 19: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/19.jpg)
Использованные источники
▪ Кей С. Хорстманн – Java SE 8. Вводный курс
▪ Pe3oHaHc - Многопоточность в Java [http://habrahabr.ru/post/164487/ ]
▪ Exchanger [http://tutorials.jenkov.com/java-util-concurrent/exchanger.html]
![Page 20: Java threads - part 1](https://reader036.vdocuments.mx/reader036/viewer/2022070511/58a14f1d1a28abbe3c8b4e23/html5/thumbnails/20.jpg)
Спасибо за внимание!