ThreadLocal对象处理
ThreadLocal的本身作用就是进行操作对象信息保存,但是它与传统的信息保存不同,它不仅仅保存的是一个引用对象,而且还保存有一个当前对象,也就是说进行数据保存的时候ThreadLocal更像Map集合。
范例:引用的麻烦
现在Demo类中的print()方法核心的目的是接收Message类的对象,在这样的情况下不希望进行引用传递,那么一旦不希望进行引用传递的话,这个时候就想到可以利用一个中间的环节类。
范例:避免引用传递
在之前的程序上所有的程序的功能都是在主线程完成的,所以该程序属于一个单线程的程序,如果说要进行多线程的访问开发的话,那么就会发现问题。
范例:观察多线程的操作问题
这种问题就出现在多个线程中的Message类的对象交叉进行DataCache类中msg对象引用的改变。
在进行数据保存的引用传递的时候不再只是一个引用类型,而是包含一个currentThread对象信息保存,这样就可以明确地知道当前操作的对象数据是什么,并且不会与其它线程进行混淆。
更多专业知识,面试技巧就在阿里云开发者社区,持续更新中……
感谢浏览~
本内容来源于阿里云大学-Java面试技巧