如果多个线程需要共享资源以达到线程之间通信的功能,就使用同步机制,如果仅仅需要隔离多个线程的共享冲突,则可以使用ThreadLocal类:为每一个使用该变量的线程提供一个变量值的副本。
代码如下:

package BurningT;

class Account{
    private ThreadLocal<String> name = new ThreadLocal<>();
    public String getName() {
        return name.get();
    }
    public void setName(String name) {
        this.name.set(name);
    }
    public Account(String name)
    {
        this.name.set(name);
        System.out.println(this.name.get());

    }
}
class LocalTest extends Thread
{
    private Account account;
    public LocalTest(Account account,String name)
    {
        super(name);
        this.account = account;
    }
    @Override
    public void run()
    {
        for (int i = 0;i < 10;i++)
        {
            //System.out.println(account.getName().get()+i);
            if (i == 6)
            {
                account.setName(getName());


            }
            System.out.println(account.getName()+"用户I的值"+i);
        }

    }
}
public class ThreadLocalTest {
    public static void main(String[] args)
    {
        Account account = new Account("Burning Teng");
        new LocalTest(account,"线程甲").start();
        new LocalTest(account,"线程yi").start();
    }

}

运行结果如下:
Burning Teng
null用户I的值0
null用户I的值1
null用户I的值0
null用户I的值2
null用户I的值1
null用户I的值3
null用户I的值2
null用户I的值4
null用户I的值3
null用户I的值5
null用户I的值4
线程甲用户I的值6
null用户I的值5
线程甲用户I的值7
线程yi用户I的值6
线程甲用户I的值8
线程yi用户I的值7
线程甲用户I的值9
线程yi用户I的值8
线程yi用户I的值9