您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    分享几个任务中适用的代码优化技巧!(3)
    时间:2021-08-08 08:04 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

                   System.out.println("Thread1:"+threadLocalRandom.nextInt(10)); 

               } 

           }); 

           Thread thread2 = new Thread(()->{ 

               for (int i=0;i<10;i++){ 

                   System.out.println("Thread2:"+threadLocalRandom.nextInt(10)); 

               } 

           }); 

           thread1.start(); 

           thread2.start(); 

       } 

    自增引荐运用LongAddr

    自增运算可以经过 synchronized 和 volatile 的组合来控制线程安全,或许也可以运用原子类(比如 AtomicLong)。

    后者的速度比前者要高一些,AtomicLong 运用 CAS 停止比较交流,在线程多的状况下会形成过多有效自旋,可以运用 LongAdder 交流 AtomicLong 停止进一步的功用提升。

    public class Test { 

        public int longAdderTest(Blackhole blackhole) throws InterruptedException { 

            LongAdder longAdder = new LongAdder(); 

            for (int i = 0; i < 1024; i++) { 

                longAdder.add(1); 

            } 

            return longAdder.intValue(); 

        } 

    顺序中要少用反射

    反射的功用很弱小,但它是经过解析字节码完成的,功用就不是很理想。

    理想中有很多对反射的优化办法,比如把反射执行的进程(比如 Method)缓存起来,运用复用来加快反射速度。

    Java 7.0 之后,参加了新的包java.lang.invoke,同时参加了新的 JVM 字节码指令 invokedynamic,用来支持从 JVM 层面,直接经过字符串对目的办法停止调用。

    分享几个任务中适用的代码优化技巧!

    【编辑引荐】

    微软开源的可视化神器,上手太酷炫了

    Cube.js:试试这个新的数据剖析开源工具

    为什么在 2021 年我依然引荐你运用 Linux

    微软 Windows 11 晋级运转并非必须满足 TPM 2.0 ,但需求 TPM 1.2 以上

    Windows 11硬件要求难倒玩家 TPM 2.0模块价钱暴涨3倍

    (责任编辑:admin)