当前位置: 首页 > news >正文

企业站模板招聘网站开发的流程

企业站模板,招聘网站开发的流程,衡阳百度推广,主题网站的设计方案ThreadLocal 什么是ThreadLocal ThreadLoacal类可以为每个线程保存一份独有的变量#xff0c;该变量对于每个线程都是独占的。实现原理为每个Thread类中包含一个ThreadHashMap#xff0c;key为变量的对应的ThreadLocal对象#xff0c;value为变量的值。 在日常使用中该变量对于每个线程都是独占的。实现原理为每个Thread类中包含一个ThreadHashMapkey为变量的对应的ThreadLocal对象value为变量的值。 在日常使用中我们可以通过set(value)方法设置值然后通过get()方法获取值示例代码如下 我们通过线程池执行了五个线程每个线程都有一份自己独有的id变量实现了线程间的数据隔离。 Slf4j public class ThreadLocalTest {// ThreadLocal 变量每个线程都有自己的副本private static final ThreadLocalInteger id new ThreadLocal();Testpublic void testThreadLocal() {// 创建线程池ExecutorService executorService Executors.newCachedThreadPool();try {for (int i 0; i 5; i ) {int finalI i;executorService.execute(() - {// 设置ThreadLocal 变量 id.set(finalI);// 获取ThreadLocal变量log.info(The id of thread {} is {}, Thread.currentThread().getName(), id.get());});}} finally {id.remove();executorService.shutdown();}} }传统的HashMap是链地址法发生碰撞放入桶内ThreadLocalMap是开放地址法发生冲突放到后一位 实现原理 那如何实现这种线程间的数据隔离呢一种容易想到的方法是在Map中进行存储每个ThreadLocal变量内维护一个Map其中key为每个线程的IDvalue为对应的值。这样当调用get()方法时会通过hash算法找到对应线程的值。 jdk也确实是这么做的只不过存放元素Map的实现不是HashMap而是ThreadLocalMap解决冲突的做法是开放寻址法即出现冲突就往下一个临近位置找直到找到空位置。 早期的实现中多个线程会共享一个ThreadLocalMap这样随着线程数的增加map就需要扩容会消耗较多的资源 后来每个线程都有自己的一个ThreadLocalMap各自保存自己的局部变量key为变量名value为变量值。 因为局部变量很少所以一般不需要扩容。 内存泄漏 下面这张图是ThreadLocal对应的引用关系可以看到在新的设计下ThreadLocalMap存在于Thread中是和Thread的生命周期一致的。 ThreadLocalMap的key为ThreadLocal对象value是对应的值需要注意的是ThreadHashMap的key会使用弱引用这主要是为了当ThreadLocal为null后除了ThreadHashMap持有的弱引用外没有别的强引用ThreadLocal对象可以被GC回收。 但是这样就导致ThreadHashMap中对应的key为null其value引用的对象不会被GC回收从而出现了内存泄漏。 所以在使用完ThreadLocal变量后尽量使用remove()方法进行清理这样会把key为null的键值对删除。 再回到上面的示例上面的示例我们使用final修饰了ThreadLocal保证其不会被修改这样做会导致ThreadLocal永远存在强引用不会被释放容易发生内存泄露所以需要我们显示调用remove()方法进行清理。 参考链接 ThreadLocal的内存泄露什么原因如何避免
http://www.dnsts.com.cn/news/134211.html

相关文章:

  • 做柱状图好看的网站中国万网张向东去哪了
  • 东莞营销型网站建设公司pc 移动的网站开发
  • ps做网站字号大小一个wordpress的爱好者
  • 中国建设银行网站u盾修改密码wordpress数据表结构
  • wordpress网站网页加密5113二次加密和三次加密
  • 哈尔滨市建设工程交易网网站字头优化
  • 网站没有百度快照idc机房
  • 做哪个网站零售最好aso优化技巧大aso技巧
  • 秦皇岛网站制作电话ysl 官网中国
  • 英文网站建设服务合同模板下载软件平台建设方案
  • 打开一个网站为繁体字是怎么做的怎么做网站评论
  • 山西省建设注册中心网站个人如何开投资公司
  • 惠州专业网站建设价格近境制作官网
  • 个人可以做社区网站推广网站公司
  • 黑龙江建筑职业技术学院招生网站网络贷款公司哪个好
  • 云南建设工程招标网站淘宝联盟自己做网站
  • 手机端网站尺寸规范网站备案需要具备什么
  • 网站 设计 趋势小白网站建设
  • 中山网站建设文化机构人物介绍网页设计
  • 西安网站关键词优化推荐做网站具体步骤
  • 专业做pe的网站深圳装饰公司前十强
  • 青岛工程建设监理公司网站公司新成立想要搭建网站怎么做
  • 做招聘网站需要什么人员wordpress主查询
  • 海口企业免费建站共享ip网站 排名影响
  • 海南网站制作潍坊网站建设价格低
  • 网站建设开发多少钱深圳做网站公
  • 山西建立网站营销策划学网站开发可以创业吗
  • 网站网页设计要求摄影工作室网站源码
  • sentos上部署.net网站旅游最新政策
  • 深圳做网站网络公司网站 建设文档