使用threadlocal,threadlocal会为每一个线程提供一个独立的变量副本,这样在多线程对数据访问就不会出现冲突。因为每一个线程都拥有自己的变量副本,因此也就不需要同步该变量。threadlocal提供了线程安全的共享对象,在编写多线程代码时,可以把不安全的变量封装进threadlocal。
spring的线程安全如何处理
如果时web应用,可以使用spring bean的作用域中的request,在controller类前面加上@scope(****),表明每次请求都会生成一个新的bean对象。这样也能起到线程安全的作用。
如何处理spring的线程的安全?
使用线程同步,关键字synchronized,当线程较多时,当一个线程调用该方法时,其他想要调用此方法的线程就要block ,多线程并发量大的时候会对性能有一定的影响。