Я, наконец, выбрал v8 как скриптовый движок для моего приложения, когда понял, что пропустил важное место: параллелизм.V8 потокобезопасен на данный момент?
Я решил пойти с v8 вместо lua из-за пары ключевых факторов, но, по-видимому, я не могу писать потокобезопасный код или многопоточную задачу в целом с v8.
В официальных документах я не нашел ссылки на параллельные функции v8, они описывают GC, что v8 написан на C++, он поддерживает множество платформ и т. Д., Но ничего не касается потоковой передачи на обеих вики и официальную документацию для встраивания v8 в приложение C++.
Вопрос: как я должен думать о v8? Я должен представить свое приложение как набор однопоточных/потокобезопасных функций прямо из C++?
как '' Isolate' и Locker' звук как мьютекс из C/C++, но я не получаю 1 вещь, как запустить несколько потоков? в связанном ответе есть ссылка, в которой говорится, что v8 работает только по 1 потоку за раз, верно ли это для любого сценария внутри v8? – user2485710
Насколько я знаю, это правда, V8 может работать только на одном потоке. Хотя для подтверждения первой части вашего комментария «Изоляция» является в основном чистым экземпляром V8. Вы создаете новый 'Isolate' для разделения выполнения скриптов differnet. Если что-то «Locker» более похоже на мьютекс, чем «Изоляция». – rstat1