Skip to main content
本页汇总 Fluxon 的常用运行时可配置点与调试入口:主线程执行器、异步线程池、函数目录导出,以及在问题发生时“去哪里看”。

主线程执行器

  • 默认:Executors.newSingleThreadExecutor()
  • 自定义:FluxonRuntime#setPrimaryThreadExecutor(Executor executor),常用于绑定游戏/GUI 的主线程调度器。
  • 生效范围:被标记为主线程的函数/扩展。 例如 registerPrimarySyncFunction / registerSyncExtensionFunction,或 @Export(sync = true)

线程池管理器

函数目录导出

  • 命令:./gradlew :core:dumpFluxonCatalog 输出 core/build/fluxon-functions.json
  • 同步: vscode-extension/scripts/sync-catalog.js 复制到扩展数据目录,驱动补全。
  • 字段与语义以 函数目录 为准;新增/改名后务必重跑并同步。

环境调试

  • Environment#getRootFunctions() / getRootExtensionFunctions() / getRootVariables():检查脚本可见符号。
  • FunctionContext#toString():定位 target 与实参。
  • FluxonRuntime#getSystemVariables():查看全局对象(如 GlobalObject)。

关闭与生命周期

  • 宿主退出或插件卸载时,建议调用 ThreadPoolManager#shutdown() 释放线程池资源。
  • 若你创建了自定义的主线程执行器,也应按宿主的生命周期进行关闭与回收。

常见问题

  1. 新增函数未生效? 注册后需重新 newEnvironment() 触发 bake。
  2. 主线程函数仍跑在后台? 核对是否使用 registerPrimarySyncFunction / registerSyncExtensionFunction。 并确认替换了主线程执行器。
  3. 异步堵塞? CallerRunsPolicy 出现表示队列已满,需拆分任务或扩容宿主线程资源。

相关链接