Готовый перевод Chapter 17. Threads and Locks / Глава 17. Потоки и Блокировки: Аннотация

В то время как большинство обсуждений в предшедствующих главах относятся к поведению кода исполняемого как одно выражение в единицу времени, что равносильно исполнению кода одним потоком, в это же время, виртуальная машина Java может исполнять код несколькими потоками одновременно. Эти потоки независимо друг от друга исполняют код, который оперирует значениями и объектами из основной общей памяти. Потоки могут запускаться на многопроцессорных машинах, или на процессорах эмулирующих многозадачность с помощью разделения выполнения задач по времени (time-slicing).

Потоки представлены классом Thread. Пользователь может создать поток единственным образом - создав объект этого класса; каждый поток связан с таким объектом. Поток начинает работу, когда у соответствующего объекта класса Thread вызывается метод start().

Поведение потоков, особенно если они неправильно синхронизованы, может быть трудным для понимания. Эта глава описывает семантику многопоточных приложений; она включает в себя правила, определяющие, какие значения могут быть получены в процессе чтения из общей памяти, которая обновляется многими потоками. Так как эти правила похожи на модели памяти для различных аппаратных архитектур, они также известны, как модель памяти языка программирования Java. В дальнейшем, когда это не приводит к путанице, мы будем называть эти правила "модель памяти".

Эти семантики не предписывают правил того, как многопоточные программы должны исполняться. Скорее они описывают все возможные варианты поведения многопоточных программ. Любая стратегия исполнения, которая генерирует только допустимые варианты поведения - это допустимая стратегия исполнения.

Переведено на Нотабеноиде
http://notabenoid.org/book/41986/160699

Переводчики: timeking, oracle

Настройки

Готово:

100.00% КП = 1.0