Monitor - высокоуровневый механизм взаимодействия и синхронизации процессов, обеспечивающий доступ к неразделяемым ресурсам.
Semaphore - семафор, самый простой тип блокировки, ограничивает количество потоков, которые могут войти в заданный участок кода.
Mutex - двоичный простейший семафор, который может находиться в одном из двух состояний: отмеченном или неотмеченном. Он отличается от семафора тем, что только владеющий им поток может его освободить, т.е. перевести в отмеченное состояние.
Reentrant mutex - мьютекс, который может быть залочен несколько раз одиним и тем же процессом/потоком без создания взаимной блокировки.
Lock - блокировка, механизм синхронизации, позволяющий обеспечить исключительный достп к разделяемому ресурсу между несколькими потоками.
Spinlock - тип блокировки, который заставляет поток в бесконечном цикле пытаться получить доступ к блокировке.
Deadlock - взаимное исключение, блокировка, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.
Livelock - взаимное исключение, блокировка, при которой несколько процессов находятся в состоянии бесконечного зацикливания и не производят полезной работы.
Process - процесс обладает автономной средой выполнения.
Thread - потоки иногда называют легковесными процессами (lightweight processes). Потоки существуют внутри процесса - каждый процесс обладает хотя бы одним потоком.
Interrupt - прерывание является указанием потоку остановить выпонение.
Join - позволяет одному потоку ждать окончание выполнения другого потока.
Thread safe - участок кода, который работает корректно как в однопоточной, так и в многопоточной среде.
Thread affinity - при старте потока, можно указать в рантайм среде, чтобы поток был привязан к определенному ядру.
EDT (Event Dispatching Thread) - специальный поток, используемый для обработки событий из очереди событий. Такой подход является концептом событийно-ориентированного программирования.
Race condition - ошибка проектирования многопоточной системы или приложения, при которой работа системы или приложения зависит от того, в каком порядке выполняются части кода.
Context switches - когда планировщик временно приостанавливает работу потока, чтобы активировать другой поток.
Atomic action (Атомарная операция) - операция, выполняющаяся как единое целое, либо не выполняющаяся вовсе.
Happened-before relationship - отношение "выполняется прежде" двух событий, которое гарантирует, что память, записанная событием A будет видна для события B, т.е. событие А завершает свою запись перед тем, как B начнет чтение.
Critical section - участок кода, в котором производится доступ к общему ресурсу, который не должен быть одновременно использован более чем одним потоком.
JMM (Java Memory Model) - описывает поведение потоков в среде исполнения Java.
java.lang.Thread - каждый поток ассоциируется с объектом этого класса.
Thread.sleep() отдает команду текущему потоку приостановить выполнение на указанное время.Thread.interrupted() возвращает true, если выполнение потока было прервано.thread.join() позволяет одному потоку ждать окончания выполнения другого (т.е. текущий ждет выполнения потока thread).java.lang.Runnable - интерфейс определяет единственный метод run, который должен содержать код, который будет выполняться в потоке.
volatile - данный модификатор указывает компилятору, что чтение перемнной будет производиться прямо из памяти, что позволяет нескольким потокам видеть последнее значение переменной.
java.util.concurrent.locks.Lock - интерфейс, реализации которого предполагают более обширные операции блокировки, чем предоставляемые synchronized методами и блоками.
sleep() - заставляет поток остановить свое выполнение на указанное время. При этом поток не теряет контроль над монитором.
start() - запускает данный поток из текущего потока.
run() метод этого же потока.run() - наследники Thread должны перегружать данный метод. Он вызывается при старте потока.
interrupt() - прерывает выпонение потока.
InterruptedException - данный поток получит это исключение, если произошло успешное прерывание потока.ClosedByInterruptException - если данный поток был заблокирован I/O операцией, то поток получит это исключение по окончанию прерывания.setPriority() - изменяет приоритет данного потока.
join() - заставляет поток ждать не более чем указанное время, чтобы завершиться.
wait(), который вызывается пока isAlive. После завершения потока вызывается notifyAll() метод.wait(),notify,notifyAll методы из Thread сущностей, так как это не рекомендованно.setDaemon() - отмечает данный поток как поток-демон или пользовательский поток.
yield() - указывает планировщику, что текущий поток закончил свое выполнение и готов перейти в пользование процессора. Планировщик однаком может игнорировать это указание.