On this page
Multithreading
在多线程环境Configuration
实例中,应将Template
实例和数据模型视为不可变(只读)对象。也就是说,您可以创建并初始化它们(例如,使用set...
方法),然后再不对其进行修改(例如,您不调用set...
)。这使我们能够避免在多线程环境中使用昂贵的同步块。当心Template
个实例;当您获得具有Configuration.getTemplate
的Template
实例时,您可能会从其他线程已经使用的模板缓存中获取一个实例,因此不要调用其set...
方法(调用process
当然可以)。
如果仅从相同单线程访问所有对象,则上述限制不适用。
除非您将执行此操作的方法(或其他对象)放入数据模型中,否则无法使用 FTL 修改数据模型对象或shared variable。我们不鼓励您编写修改数据模型对象或共享变量的方法。尝试改用存储在环境对象中的变量(此对象是为单个Template.process
调用创建的,以存储处理的运行时状态),因此不要修改多个线程可能使用的数据。有关更多信息,请阅读:Variables, scopes