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

网站开发毕业周记wordpress首页加图片

网站开发毕业周记,wordpress首页加图片,网站导航栏如何优化,推广一次多少钱0、前言 TransmittableThreadLocal#xff0c;简称 TTL#xff0c;是阿里巴巴开源的一个Java库#xff0c;它能够实现ThreadLocal在多线程间的值传递#xff0c;适用于使用线程池、异步调用等需要线程切换的场景#xff0c;解决了ThreadLocal在使用父子线程、线程池时不能…0、前言 TransmittableThreadLocal简称 TTL是阿里巴巴开源的一个Java库它能够实现ThreadLocal在多线程间的值传递适用于使用线程池、异步调用等需要线程切换的场景解决了ThreadLocal在使用父子线程、线程池时不能正确传递值的问题。核心实现捕获capture- 重放replay- 恢复restore 捕获将父线程的 TTL/ThreadLocal 拷贝一份到子线程中存为快照 private static class Snapshot {final HashMapTransmittableThreadLocalObject, Object ttl2Value;final HashMapThreadLocalObject, Object threadLocal2Value;}重放将快照中的内容存入子线程的 TTL/ThreadLocal 中并移除不存在快照中的子线程已经存在的 TTL/ThreadLocal恢复清除子线程的 TTL/ThreadLocal。 1、上下文乱象 背景为了实现在异步线程中也能正确进行通用字段的填充引入了 TTL将原先存储用户上下文信息的 ThreadLocal 换成了 TTL。注异步线程通过线程池进行管理乱象 子线程在执行任务的过程中用户上下文出现了两种状态run() 执行前后 – 正确信息、run() 执行中 – null如下图所示。  代码部分如下所示。功能逻辑线程池装饰器字段填充 2、没有使用 TtlRunnable capturereplayrestore 本质是线程任务执行前后的增强方法这些方法的调用发生于 TtlRunnable 的 run 方法中。 /*** wrap method {link Runnable#run()}.*/Overridepublic void run() {final Object captured capturedRef.get();if (captured null || releaseTtlValueReferenceAfterRun !capturedRef.compareAndSet(captured, null)) {throw new IllegalStateException(TTL value reference is released after run!);}final Object backup replay(captured);try {runnable.run();} finally {restore(backup);}}使用方式 直接调用 TtlRunnable.get(…) 对 Runnable 进行包装增强通过 TtlExecutors 工具类获取相应的包装类。 错误例子正确例子 3、父子线程引用共享问题 TTL 默认的上下文复制方式是浅拷贝这就会造成父子线程中的上下文信息出现共享问题。解决这一问题的方法为重写 TTL 的 copy 方法将浅拷贝换成深拷贝。 /*** Computes the value for this transmittable thread-local variable* as a function of the source threads value at the time the task* Object is created.* p* This method is called from {link TtlRunnable} or* {link TtlCallable} when it create, before the task is started.* p* This method merely returns reference of its source thread value(the shadow copy),* and should be overridden if a different behavior is desired.** since 1.0.0*/public T copy(T parentValue) {return parentValue;}错误例子 private final static ThreadLocalMapString, Integer transmittableThreadLocal new TransmittableThreadLocalMapString, Integer() {Overrideprotected MapString, Integer initialValue() {return new HashMap();}};private static int i 0;public static void main(String[] args) {transmittableThreadLocal.get().put(String.format(key-%d, i), i);Executor ttlExecutor TtlExecutors.getTtlExecutor(Executors.newFixedThreadPool(1));CompletableFuture.runAsync(()- {try {Thread.sleep(3 * 1000);} catch (InterruptedException e) {}System.out.println(StrUtil.format([{}]子线程{}, LocalTime.now(), transmittableThreadLocal.get()));}, ttlExecutor);transmittableThreadLocal.get().put(String.format(key-%d, i), i);System.out.println(StrUtil.format([{}]父线程{}, LocalTime.now(), transmittableThreadLocal.get()));transmittableThreadLocal.remove();}正确例子 private final static ThreadLocalMapString, Integer transmittableThreadLocal new TransmittableThreadLocalMapString, Integer() {Overrideprotected MapString, Integer initialValue() {return new HashMap();}Overridepublic MapString, Integer copy(MapString, Integer parentValue) {return parentValue ! null ? new HashMap(parentValue) : null;}};private static int i 0;public static void main(String[] args) {transmittableThreadLocal.get().put(StrUtil.format(key-{}, i), i);Executor ttlExecutor TtlExecutors.getTtlExecutor(Executors.newFixedThreadPool(1));CompletableFuture.runAsync(()- {try {Thread.sleep(3 * 1000);} catch (InterruptedException e) {}System.out.println(StrUtil.format([{}]子线程{}, LocalTime.now(), transmittableThreadLocal.get()));}, ttlExecutor);transmittableThreadLocal.get().put(String.format(key-%d, i), i);System.out.println(StrUtil.format([{}]父线程{}, LocalTime.now(), transmittableThreadLocal.get()));transmittableThreadLocal.remove();}拓展捕获、重放期间的线程切换和 ThreadLocal 变化。捕获重放 备份 重新设置
http://www.hkea.cn/news/14401451/

相关文章:

  • 网站怎么做自营销三门峡网站制作
  • 大型网站开发php框架wordpress分类删不掉
  • 大连哪家公司做网站比较好建设部网站注册查询
  • 网站建设的电话网页制作与设计源代码
  • 网站前端开发流程广州高端网页制作
  • 公司主页网站制作网络推广多少钱
  • 网站建设文化策划仙桃做网站的公司
  • 开发一个网站大概多少钱百度怎么搜索图片
  • 上海网站营销公司沛县微网站开发
  • 一个网站的制作步骤移动网站打不开
  • 如何使用云服务建设网站直链平台
  • 企业建设网站公司排名盐城做企业网站多少钱
  • 系统开发总结站长工具seo综合查询怎么用
  • 有关图书网站建设策划书怎样注册企业邮箱免费
  • 石狮市住房和城乡建设局网站做网站用c 还是js
  • 温州建站费用交河做网站价格
  • 网站建设和软件开发三水营销网站开发
  • 网站的建设与推广wordpress 公式编辑器
  • 抚州做网站价格多少珠海市住房和城乡建设局网站
  • 杏坛餐饮网站建站网站备案掉了什么原因
  • 德育工作网站建设方案自助建站广告发布
  • 国外设计网站door邀请注册推广赚钱的app
  • 巩义网站建设托管黑龙江建设网官网登陆
  • 中国网站建设公司前十名专用车网站建设
  • 云主机做网站域名打不开羽毛球赛事2022
  • 有人上相亲网站做传销燕窝怎样进行公司网站建设
  • 加强门户网站建设香河建设局网站
  • 搞钱天津seo网络营销
  • 海口网站建设做网站定制化网站建设
  • 网站登录界面源码北京发布最新消息今天