java

Controller是单例模式的吗?如何保证线程安全?

2019-06-14  本文已影响190人  鸿雁长飞鱼龙潜跃

Controller是单例模式的吗?如何保证线程安全?

答:Controller是单例的,也就是说并发请求调用Controller生成的是同一个对象。从线程安全的角度来说,这些线程共享Controller的实例对象。

接下来我们说一下线程安全的问题。首先明确一点,spring的controller是非线程安全的。既然是非线程安全的,那么我们就要注意共享内存中的对象了,这些对象必须要注意线程安全问题。

如何解决线程安全问题呢?

第一种方式,避免定义全局变量。局部变量不存在线程安全问题。

第二种方式,使用ThreadLocal来进行线程隔离。如何使用这里不再赘述。网上有很多例子。

上一篇下一篇

猜你喜欢

热点阅读