有没有办法限制访问servlet上下文中的属性

时间:2010-12-10 05:49:38

标签: java multithreading servlets

我需要在运行时更改Sevlet上下文中对象的值。我的应用程序保证一次只有一个线程会在Servletcontext中重置该属性的值

问题:我的问题是当单线程设置对象的值时,许多其他线程将具有对此对象的读访问权,并且它们都可以读取奇怪的值,因为对象可能是半集在使用它时

有什么办法可以限制所有线程的读取访问权限,直到写入线程完成设置新值。

2 个答案:

答案 0 :(得分:1)

ServletContext.setAttribute()始终需要同步

将ServletContext.setAttribute()放在Synchronization块中。

这样一次只有一个广告的广告价值。

答案 1 :(得分:1)

ConcurrentHashMap作为servletcontext属性并将所需对象作为映射条目进行管理。

相关问题