Java多线程访问成员变量与局部变量

    xiaoxiao2021-03-26  25

    如果一个变量是成员变量,那么多个线程对同一个对象的成员变量进行操作时,它们对该成员变量是彼此影响的,也就是说一个线程对成员变量的改变会影响到另一个线程。

    如果一个变量是局部变量,那么每个线程都会有一个该局部变量的拷贝(即便是同一个对象中的方法的局部变量,也会对每一个线程有一个拷贝),一个线程对该局部变量的改变不会影响到其他线程。

    因此:

    --- 如果一个字符串变量是在方法里面定义,这种情况只可能有一个线程访问它,不存在不安全的因素了,则用StringBuilder(效率比StringBuffer高)

    --- 如果要在类里面定义成员变量,并且这个类的实例对象会在多线程环境下使用,则用StringBuffer(线程安全)

    转载请注明原文地址: https://ju.6miu.com/read-661685.html

    最新回复(0)