TLAB в виртуальном потоке - Project Loom

Как в настоящее время TLAB обрабатывает виртуальный поток, представленный Project Loom в Java? Доступен ли TLAB в виртуальных потоках?

1 ответ

Виртуальные потоки не имеют TLAB — они им не нужны.

Из перехода внутрь Java Project Loom и виртуальных потоков :

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

Если виртуальный поток не подключен к потоку-носителю, он не выполняет никаких инструкций и, следовательно, не может выделить память — ему не нужен TLAB.

Если он присоединен к потоку-носителю, он выполняет инструкции и, следовательно, может выделять память. Для этого выделения памяти он может безопасно использовать TLAB потока-носителя.

Здесь нет спора:

  • в любой момент времени поток-носитель выполняет ровно один виртуальный поток
  • в любой момент времени виртуальный поток выполняется не более чем одним потоком-носителем
Другие вопросы по тегам