ThreadLocal 使用场景及其细节

ThreadLocal 使用场景及其细节

ThreadLocal 的使用场景

  • 保存每个线程独享对象, 为每个对象都创建一个副本,确保了线程的安全。
  • 每个线程需要独立的保存信息,以便其他方法可以更加方便的获取。
  • 应该在使用完成后显示的掉用 remove() 方法移除掉, 避免内存泄露。

ThreadLocal 和 synchronized 是什么关系?

  • 都是作为保证线程安全的工具。
  • ThreadLocal 是通过让每个线程独享资源副本,避免了资源的竞争。
  • ThreadLocal 不是为了解决共享资源的多线程访问的问题
  • synchronized 是用于临界资源的分配,资源访问排他性,来保证资源多线程访问下的安全。

Thread ThreadLocalMap TheadLocal 之间的关系

image.png

ThreadLocalMap 与 HashMap 的区别?

  • HashMap 解决hash 冲突的方式是通过拉链法
  • ThreadLocalMap 解决hash 冲突的方式是 线性探测法 , 如果发生hash 冲突会继续寻找下一个格子。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。