多线程

优质
小牛编辑
134浏览
2023-12-01

在多线程运行环境中, Configuration 实例, Template 实例和数据模型应该是永远不能改变(只读)的对象。 也就是说,创建和初始化它们(如使用 set... 方法)之后,就不能再修改它们了(比如不能再次调用 set... 方法)。 这就允许我们在多线程环境中避免代价很大的同步锁问题。要小心 Template 实例; 当使用了 Configuration.getTemplate 方法获得 Template 一个实例时,也许得到的是从模板缓存中缓存的实例, 这些实例都已经被其他线程使用了,所以不要调用它们的 set... 方法 (当然调用 process 方法还是不错的)。

如果只从 同一个 独立线程中访问所有对象, 那么上面所述的限制将不会起作用。

使用FTL来修改数据模型对象或者 共享变量 是不太可能的, 除非将方法(或其他对象)放到数据模型中来做。 我们不鼓励你编写修改数据模型对象或共享变量的方法。多试试使用存储在环境对象 (这个对象是为独立的 Template.process 调用而创建的, 用来存储模板处理的运行状态)中的变量,所以最好不要修改那些由多线程使用的数据。 要获取更多信息,请阅读:变量,范围