3. Agenda
- Program Order
- Memory Model
- Sequentially consistent
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
16. Что делать?
Memory Model
Отвечает на вопрос:
Какие данные я смогу увидеть в
конкретной точке выполнения
программы?
- Видимость
- Порядок (допустимые оптимизации)
- Атомарность
22. Java memory model
Before java 5.0: “Once upon a time…”
After java 5.0: “JSR 133”
https://www.cs.umd.edu/~pugh/java/memoryModel/jsr133.pdf
23. Agenda
- Program Order
- Memory Model
- Sequential consistency
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
24. Sequentially consistent
1. В каждый момент времуни
выполняется одна операция
2. Каждая операция видит
результат всех прдыдущих
3. Порядок выполения
согласован с порядком
программы (program order)
26. Sequentially consistent - непригодна
1. Несколько потоков
одновременно обращаются к
переменной.
2. Один из потоков пишет.
3. Нет синхронизации.
* не путать с race condition
Data race
27. Agenda
- Program Order
- Memory Model
- Sequentially consistent
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
33. Agenda
- Program Order
- Memory Model
- Sequentially consistent
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
49. Agenda
- Program Order
- Memory Model
- Sequentially consistent
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
50. Agenda
- Program Order
- Memory Model
- Sequentially consistent
- Synchronization Action
- Synchronization Order
- Synchronized With
- Happens Before
Ta-da!