Объяснения «Изолировать», что я нашел до сих пор.
пример № 1: http://izs.me/v8-docs/classv8_1_1Isolate.html
«Изолят представляет собой изолированный экземпляр ядра V8. Изоляты V8 имеют совершенно разные состояния. Объекты из одного изолята не должны использоваться в других изолятах. При инициализации V8 неявно создается и вводится изолят по умолчанию. используйте их параллельно в нескольких потоках. В любой момент времени изолировать может только один поток. Для синхронизации можно использовать API Locker/Unlocker».
пример № 2: https://developers.google.com/v8/get_started
«Изолят — это экземпляр виртуальной машины с собственной кучей».
Да я вижу. «Изолировать» — это изолированный поток, который может работать отдельно. Далее мои вопросы.
Для меня это выглядит как просто поток, за исключением того, что у него есть собственная куча. есть ли разница?
Я думаю, что «Изолировать» можно использовать для реализации параллельного GC. В приведенном выше определении говорится, что каждый «Изолировать» не может использоваться в другом «Изолировать». Но параллельный сборщик мусора должен проверять (или помечать) основные (или другие) потоки (или изолировать) живые объекты. Как это возможно?
Как можно защитить собственные объекты? «Изолировать» — это поток, а не процесс. Таким образом, другой поток может получить доступ к объекту этого потока, если он знает адрес. Как мог защитить его? И я не могу понять смысл собственной кучи. Потому что к нему может получить доступ другой поток, если другой поток знает адрес. И обычный поток может иметь свою кучу в памяти. Поскольку адресное пространство кучи не отделено точно, но если один поток выделяет память, как другой поток может использовать ее, если другие не знают адрес? Какая разница, что каждый поток просто выделяет свое собственное пространство кучи, а «Изолировать» имеет свое собственное пространство кучи?
Мои вопросы можно легко резюмировать: какова роль «Изолята» и как возможно иметь собственное пространство кучи и почему у него должна быть собственная куча.
Будет очень полезно, если кто-нибудь поделится хорошей документацией по "Isolate". Спасибо за прочтение.
---- Сделайте вопрос ясным ---- Ключевым моментом моего вопроса является то, что Q: Что заставляет Google реализовывать изоляцию в V8? в чем преимущество изоляции и что может быть хорошим примером использования изоляции в V8? Что они (изоляты) выполняют одновременно?