开发记录

今日追踪路线记录

2019-04-17  本文已影响0人  叮咣铛

追踪图

今日从一个技术点追踪下去的路线,做一个记录,没有形成结论(避免误导别人)


21_54_49__04_17_2019.jpg

发现问题

写一个main测试

任务执行完毕后程序没有退出,过会才退出

最后追踪到
Executors.newCachedThreadPool()

针对他单独测试:

        //http://www.javapractices.com/topic/TopicAction.do?Id=250
        //https://stackoverflow.com/questions/29098117/shutdown-or-not-shutdown-in-executorservice-java8
        ExecutorService executorService = Executors.newCachedThreadPool();
        executorService.submit(new Runnable() {
            @Override
            public void run() {
                System.out.println("test");
            }
        });

有时候不是文档没看,而是没有意识到某句话什么意思


22_01_17__04_17_2019.jpg

写的很清楚,Thread 60s没有使用则被杀死,并移除cache

关于 ForkJoinPool

JDK1.7新增,由 思想领袖Doug Lea 主刀
核心思想是 线程各自领取任务后 执行,有的任务重,有的任务轻
引入一种Steal 思想: 空闲线程会去繁忙线程那里偷取任务,避免做完手头任务,进入wait 白白等待

参见:
ForkJoinPool:
https://www.oracle.com/technetwork/articles/java/fork-join-422606.html

ExecutorService的关闭问题:
http://www.javapractices.com/topic/TopicAction.do?Id=250
https://stackoverflow.com/questions/29098117/shutdown-or-not-shutdown-in-executorservice-java8

Cache Miss
https://dzone.com/articles/cache-miss-example-in-java

上一篇下一篇

猜你喜欢

热点阅读