Chapter 17. Threads and Locks / Глава 17. Потоки и Блокировки: Аннотация
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
В то время как большинство обсуждений в предшедствующих главах относятся к поведению кода исполняемого как одно выражение в единицу времени, что равносильно исполнению кода одним потоком, в это же время, виртуальная машина Java может исполнять код несколькими потоками одновременно. Эти потоки независимо друг от друга исполняют код, который оперирует значениями и объектами из основной общей памяти. Потоки могут запускаться на многопроцессорных машинах, или на процессорах эмулирующих многозадачность с помощью разделения выполнения задач по времени (time-slicing). timeking 11.07.13 в 10:12 |
|
|
Потоки представлены классом Thread. Пользователь может создать поток единственным образом - создав объект этого класса; каждый поток связан с таким объектом. Поток начинает работу, когда у соответствующего объекта класса Thread вызывается метод start(). oracle 11.07.13 в 10:12 |
||
|
Поведение потоков, особенно если они неправильно синхронизованы, может быть трудным для понимания. Эта глава описывает семантику многопоточных приложений; она включает в себя правила, определяющие, какие значения могут быть получены в процессе чтения из общей памяти, которая обновляется многими потоками. Так как эти правила похожи на модели памяти для различных аппаратных архитектур, они также известны, как модель памяти языка программирования Java. В дальнейшем, когда это не приводит к путанице, мы будем называть эти правила "модель памяти". oracle 11.07.13 в 10:22 |
||
|
Эти семантики не предписывают правил того, как многопоточные программы должны исполняться. Скорее они описывают все возможные варианты поведения многопоточных программ. Любая стратегия исполнения, которая генерирует только допустимые варианты поведения - это допустимая стратегия исполнения. timeking 11.07.13 в 11:21 |
