如题:在多线程环境下,使用JSVM - API接口创建和管理引擎需要注意哪些问题?
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
如题:在多线程环境下,使用JSVM - API接口创建和管理引擎需要注意哪些问题?
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
1 回答1.1k 阅读✓ 已解决
1 回答1.3k 阅读
1 回答1.2k 阅读
1 回答1.1k 阅读
1 回答1.1k 阅读
1 回答972 阅读
1 回答949 阅读
在多线程环境下,使用JSVM - API接口创建和管理引擎需要注意以下问题:
JSVM_VM
、JSVM_Env
、任务队列等)可能导致资源竞争问题。例如,多个线程同时尝试创建引擎(调用createJsCore
),可能会干扰数据结构的一致性(如g_vmMap
、g_envMap
等的更新),或者多个线程同时访问和操作同一个引擎的任务队列(g_taskQueueMap
),可能导致任务执行顺序混乱或数据不一致。需要使用适当的同步机制(如互斥锁等,在示例中使用了std::mutex
来保护部分关键操作,但可能还需要进一步检查和完善)来确保资源的正确访问和操作。OnJSResultCallback
中执行TS侧的回调函数),需要确保回调函数内部的操作是线程安全的,避免因并发调用导致程序错误。本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。